2013-11-27 2 views
0

У меня есть эти данные, и я хочу пластинчатый столбцы на условиях на основе q8_12:счетно-переменные, основанные на условиях

q8_12 q8_13_1 q8_13_2 q8_13_3 q8_13_4 q8_13_5 
YES NO NO NO NO NO 
YES NO NO NO YES NO 
NO NO NO NO NO NO 
NO NO NO NO NO NO 
NO NO NO NO NO NO 
YES NO NO NO NO NO 
NO NO NO NO NO NO 
YES NO NO NO NO NO 
YES NO NO NO NO YES 
YES NO NO NO NO YES 
YES NO NO NO NO YES 
YES NO NO NO NO NO 
YES NO NO NO YES NO 
NO NO NO NO NO NO 

Я использую if функцию:

if(q8_12=='YES') table(q8_13_11) 

и я получаю это погрешность

Предупреждение в if (q8_12 == "ДА") таблица (q8_13_11):
условие имеет длину> 1 и только первый элемент будет использоваться

Каждый имеет представление о том, как идти об этой проблеме?

+0

Пожалуйста, прочтите о том, как поставить ваши данные в [воспроизводимый моды с использованием 'dput'] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible -пример). – Thomas

ответ

1

Вы можете использовать by:

by(dat[-1], dat[1], summary) 

где dat является имя вашего фрейма данных.

q8_12: NO 
q8_13_1 q8_13_2 q8_13_3 q8_13_4 q8_13_5 
NO:5 NO:5 NO:5 NO :5 NO :5 
         YES:0 YES:0 
-------------------------------------------------------------------------------- 
q8_12: YES 
q8_13_1 q8_13_2 q8_13_3 q8_13_4 q8_13_5 
NO:9 NO:9 NO:9 NO :7 NO :6 
         YES:2 YES:3 
0

Вы хотите индексировать, а не использовать if:

table(q8_13_11[q8_12=='YES']) 

Вы также можете просто хочу перекрестный:

table(q8_13_11, q8_12) 
+0

Спасибо, что, если я хочу, чтобы табулировать все столбцы на основе q8_12 == 'YES'. Могу ли я зациклиться на них? – jonestats

+0

@jonestats Посмотрите на ответ Свена Гогенштейна. – Thomas

Смежные вопросы