R Преобразовать категориальные данные в фиктивный набор другой переменной - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть этот набор данных, я помещаю скриншот реальных данных вместо кода или чего-то еще. извините за испорченность, я новичок ie здесь в R введите описание изображения здесь

Затем я хочу изменить данные в фиктивный набор для категориальных данных "13 Source", но это должно быть резюмировано "HH Нет". Что будет выглядеть так: введите описание изображения здесь Я пытался использовать to.dummy от varhandle, model.matrix, но в итоге получился грязный набор данных. Кто-нибудь может мне помочь, как справиться с этим? Заранее спасибо миллион

1 Ответ

0 голосов
/ 01 мая 2020

Существует несколько способов сделать фиктивные переменные из факторов - вот один из способов создания сводной таблицы присутствия.

Предположим, df - это ваш фрейм данных. Вы можете использовать xtabs для начала, что создаст таблицу частот из ваших 2 столбцов.

Сравнивая, чтобы увидеть, если ваши значения> 0, вы получите TRUE, если> 0, и FALSE в противном случае. Добавление 0 в конце даст TRUE число 1 и FALSE число 0.

(xtabs(~ HH_No + Source, df) > 0) + 0

Выход

     Source
HH_No Deep_well Rainwater
    1         1         1
    3         1         1
    4         0         1

Данные

df <- structure(list(HH_No = c(1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 
3, 3, 4, 4), Source = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L), .Label = c("Deep_well", 
"Rainwater"), class = "factor")), class = "data.frame", row.names = c(NA, 
-16L))
...