R中多个布尔或非布尔列的频率

时间:2015-07-30 12:00:55

标签: r statistics frequency

我是 R 的新手。我有一个数据框(使用read.csv导入),其中包含> 200列和> 100行,这是调查的结果。因此,一列或一组列代表问题的答案。我有两个问题。

a)名称为" Q1"," Q2",..." Q9"包含布尔值(是/否)。用于创建如下所示的频率表的命令是什么(即:所有行上每列的真/假频率)。

        q1     q2    q3    ...
true    5      99     11
false   95      1     89

b)名称为" P1"," P2",..." P9"包含来自1比5的比例值("同意" ......"不同意")。创建如下所示的频率表的命令是什么(即计算每列所有行的出现次数1,2,... 5)

        p1      p2     p3  ....
1        1        4     5
2        4       45     7
3       78       34     6
4        5       55     8
5        4       22    67  ....

1 个答案:

答案 0 :(得分:2)

数据:

df = data.frame(q1=c(F,T,T),q2=c(T,F,F),q3=rep(T,3), p1=c(1,2,1), p2=c(3,4,5), p3=c(4,4,2))

您可以尝试:

library(qdapTools)
t(mtabulate(df[grep('q',names(df), value=T)]))

#      q1 q2 q3
#FALSE  1  2  0
#TRUE   2  1  3

t(mtabulate(df[grep('p',names(df), value=T)]))
#  p1 p2 p3
#1  2  0  0
#2  1  0  1
#3  0  1  0
#4  0  1  2
#5  0  1  0