R中多个布尔或非布尔列的频率
Frequency of multiple boolean or non-boolean columns in R
我是R的新手。我有一个数据框(使用 read.csv 导入),其中包含 >200 列和 >100 行,这是一项调查的结果。因此,一列或一组列代表问题的答案。我有两个问题。
a) 名称为 "Q1"、"Q2"、... "Q9" 的列包含布尔值 (yes/no)。创建如下所示的频率 table 的命令是什么(即:所有行中每一列的频率 true/false)。
q1 q2 q3 ...
true 5 99 11
false 95 1 89
b) 名称为 "P1"、"P2"、... "P9" 的列包含来自比例尺的值 ("agree"..."don't agree")从 1..5.创建如下所示的频率 table 的命令是什么(即计算每列所有行中 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 ....
数据:
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
我是R的新手。我有一个数据框(使用 read.csv 导入),其中包含 >200 列和 >100 行,这是一项调查的结果。因此,一列或一组列代表问题的答案。我有两个问题。
a) 名称为 "Q1"、"Q2"、... "Q9" 的列包含布尔值 (yes/no)。创建如下所示的频率 table 的命令是什么(即:所有行中每一列的频率 true/false)。
q1 q2 q3 ...
true 5 99 11
false 95 1 89
b) 名称为 "P1"、"P2"、... "P9" 的列包含来自比例尺的值 ("agree"..."don't agree")从 1..5.创建如下所示的频率 table 的命令是什么(即计算每列所有行中 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 ....
数据:
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