我有一张如下表格:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
fve fve fve fve fve fve fve fve mdm mdm
mdm fve fve fve fve fve fve fve fve fve
fve fve fve fve fve fve fve fve fve fve
mdm fve fve fve fve fve fve fve fve fve
fve fve fve fve fve fve fve fve fve fve
我想计算第1列中针对所有人的频率,并得到类似的结果:
fve mdm
fve 25 2
mdm 18 0
有可能吗?我尝试使用table()
和ftable()
,但输出与我期待的不符。
答案 0 :(得分:3)
修改后的问题:
> tapply(unlist(dat[-1]), rep(dat[[1]], length(dat[-1])), table)
$fve
fve mdm
25 2
$mdm
fve mdm
18 0
我想您可以对这些值运行do.call(rbind, ...)
以获取所需的表格:
答案 1 :(得分:2)
略有不同的选择是
table(df1[,1][row(df1[-1])], unlist(df1[-1]))
# fve mdm
# fve 25 2
# mdm 18 0