Таблица вопросов с несколькими ответами

Представьте, что у меня есть вопрос, для которого есть четыре варианта, и респондент может выбрать ноль или любую комбинацию из четырех. Переменные называются A, B, C и D, а ответы сохраняются в data.frame, как показано ниже.

set.seed(1)
dat = data.frame(A = sample(c(0, 1), 20, replace=TRUE), 
                 B = sample(c(0, 1), 20, replace=TRUE), 
                 C = sample(c(0, 1), 20, replace=TRUE),
                 D = sample(c(0, 1), 20, replace=TRUE))

Я могу свести в таблицу комбинацию ответов (например, сколько ответило только A, или A+B, или C+D и т. д.), выполнив следующие действия:

data.frame(table(dat))
#    A B C D Freq
# 1  0 0 0 0    2
# 2  1 0 0 0    2
# 3  0 1 0 0    0
# 4  1 1 0 0    1
# 5  0 0 1 0    1
# 6  1 0 1 0    3
# 7  0 1 1 0    0
# 8  1 1 1 0    2
# 9  0 0 0 1    0
# 10 1 0 0 1    2
# 11 0 1 0 1    1
# 12 1 1 0 1    1
# 13 0 0 1 1    2
# 14 1 0 1 1    0
# 15 0 1 1 1    3
# 16 1 1 1 1    0

Теперь я хотел бы создать новый столбец, показывающий комбинацию букв, представленную этим выводом. Например, строка 4 представляет количество ответов A+B, а строка 14 представляет количество ответов A+C+D.

Я думаю, что здесь была бы полезна одна из функций apply, но я не знаю, как поступить.


person A5C1D2H2I1M1N2O1R2T1    schedule 05.07.2012    source источник


Ответы (1)


person    schedule
comment
@mrdwab моя техника состоит в том, чтобы начать с одной строки или столбца в зависимости от приложения и создать функцию, которая делает то, что я хочу. Тогда расширение до apply будет прямым. То же самое верно и для lapply. Если у вас есть функция, которая работает с одним элементом, lapply над списком похожих элементов даст желаемые результаты. - person Justin; 05.07.2012