Страница 1 из 1

Значения NULL в table()

Добавлено: 19 апр 2020, 15:44
VistaSV30
Добрый день!

Командой table(X, Y) возвращается квадратная матрица.
Для некоторых пар X, Y частота равна NA (или NULL)

Как сделать так, чтоб NA заменить на 0 (ноль).

Если для частота пары (X, Y) частота вычисляется , то все работает как надо - возвращается матрица размером X на Y, а если частота не вычисляется, то соответствующие строки и столбцы в матрице пропускаются, а надо, чтоб в этих столбцах и строках выводились нули.

Спасибо!

Re: Значения NULL в table()

Добавлено: 19 апр 2020, 16:01
gamm
1) NULL вообще не может быть элементом матрицы; table() не возвращает NA

2) для NA есть is.na()
x<-matrix(c(1,NA,NA,2),ncol=2)
is.na(x)
x[is.na(x)]<-0
x

3) чтобы не было пропусков в таблице, делаем фактор
x<-c(1,1,2,2,4)
y<-c(1,3,3,4,5)
table(x,y)
x<-factor(c(1,1,2,2,4),levels=1:5)
y<-factor(c(1,3,3,4,5),levels=1:5)
table(x,y)

Re: Значения NULL в table()

Добавлено: 19 апр 2020, 16:18
VistaSV30
Спасибо за ответ.

Я недавно начал изучать R.
Постараюсь объяснить на примере, что мне надо

Код: Выделить всё

> v1 <- c(1,1,2,2,2,3)
> v2 <- c(1,1,1,2,2,2)
> table(v1, v2)
     v2
v1  1   2
  1  2  0
  2  1  2
  3  0  1
Нужно, чтоб возвращалась квадратная матрица. Здесь еще должна быть третья колонка с нулями

Re: Значения NULL в table()

Добавлено: 19 апр 2020, 16:27
VistaSV30
Или вот так например, тут нет 3-ей и 4-ой колонки и 4-ой строки

Код: Выделить всё

v1 <- c(1,1,2,2,2,3,5)
v2 <- c(1,1,1,2,2,2,5)
table(v1, v2)

Re: Значения NULL в table()

Добавлено: 19 апр 2020, 18:44
gamm
VistaSV30 писал(а):
19 апр 2020, 16:18
Здесь еще должна быть третья колонка с нулями
читаем пункт 3. Внимательно изучаем пример, пункт 3), он как раз про это :mrgreen: