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

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 19 апр 2020, 15:44

Добрый день!

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

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

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

Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4068
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1062
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 19 апр 2020, 16:01

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)

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 19 апр 2020, 16:18

Спасибо за ответ.

Я недавно начал изучать 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
Нужно, чтоб возвращалась квадратная матрица. Здесь еще должна быть третья колонка с нулями
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

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

Сообщение VistaSV30 » 19 апр 2020, 16:27

Или вот так например, тут нет 3-ей и 4-ой колонки и 4-ой строки

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

v1 <- c(1,1,2,2,2,3,5)
v2 <- c(1,1,1,2,2,2,5)
table(v1, v2)
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

gamm
Гуру
Сообщения: 4068
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1062
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 19 апр 2020, 18:44

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

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя