根据条件制表变量

时间:2013-11-27 10:30:10

标签: r

我有这些数据,我想根据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 ==“YES”)表(q8_13_11)中的警告:
        条件的长度> 1,只使用第一个元素

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分: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  

答案 1 :(得分:0)

您想要编制索引,而不是使用if

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

您可能只想要一个交叉表:

table(q8_13_11, q8_12)