我有一个数据框,其中包含列v1, v2, ..., v30
,其中包含相同的因子变量,尽管列之间的级别不同(v3下的'210N'可能不会出现在v5下,因为例子 - 我不确定这是否会导致我的麻烦)。理想情况下,我希望,而不是table(df$v1)
,table(df$v2)
,...继续table(df$v30)
,并将我感兴趣的价值的所有计数加起来,有一些解决方案可以执行相当于table(df$[, v1...v30])
的操作 - 不需要我在所有列中强制执行相同的级别,因为理论上应该有大约6000个级别。
到目前为止,我天真地尝试将v1上的表与v2上的表合并,并设置all=TRUE
,尽管这不起作用:随后的表包含两个不同的计数。相同的因子水平,即'210N'出现两次,但频率不同。
答案 0 :(得分:4)
这是执行此操作的一种方法
table(unlist(df))
答案 1 :(得分:3)
一种方法是
library(plyr)
llply(.data=df, .fun=table)