Переход от нескольких фиктивных переменных к одной переменной - PullRequest
2 голосов
/ 27 марта 2011

Как я могу взять n фиктивные переменные, которые являются взаимоисключающими во фрейме данных, и объединить их в одну переменную? В следующем примере

k <- data.frame(H=sample(c(T, F), 100, T))
ifelse(k$H==T, F, sample(c(T, F))) -> k$k
k$u <- ifelse(k$H==T | k$k==T, F, T)

Существует ли простой способ преобразования их в одну переменную i с уровнями H, k или u?

Полагаю, вы могли бы сделать это с помощью ifelse и т. Д., В этом примере, но в моем файле данных у меня есть несколько сотен манекенов, и мне лень это делать вручную.

1 Ответ

6 голосов
/ 27 марта 2011
k$i <- names(k)[apply(k, 1, which)]

преобразует bool в одну фиктивную переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...