如何通过r中的条件得到计数?

时间:2016-10-31 12:28:51

标签: r

summary(as.factor(qanswer$q41))
 1    B    C    D    E  NA's 
112   66  127   45   30  896

我只想获得1的数字,即112.然后我尝试了:

length(qanswer$q41[qanswer$q41==1])
[1] 1008
> length(qanswer$q41[qanswer$q41=='1'])
[1] 1008
> length(qanswer$q41[qanswer$q41=='A'])
[1] 896
> length(qanswer$q41[qanswer$q41=='B'])
[1] 962

我做了一个功能:

  x<-function(column){sum(column=='1',na.rm = TRUE)/sum(column,na.rm = TRUE)}
> x(qanswer$q41)
Error in sum(column, na.rm = TRUE) : 
invalid 'type' (character) of argument

问题是什么?

1 个答案:

答案 0 :(得分:1)

我们可以使用sum

sum(qanswer$q41==1, na.rm = TRUE)

由于&#39; q41&#39;中有NA值。列,==返回NA元素的NA,并通过子集qanswer$q41[qanswer$q41==1],长度也包括896个NA,即

896+ 112 = 1008

相反,我们需要确保在na.rm=TRUE中删除(sum)NAs,或者如果我们想尝试使用!is.na length

length(qanswer$41[qanswer$q41==1 & !is.na(qanswer$q41)])