计算列中的值,包括不存在的值

时间:2016-02-10 21:28:00

标签: r dataframe

我有一个这样的数据框:

  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1  1  0  0  0  0  0  0  0  0   0
2  0  0  0  0  0  0  0  0  0   0
3  2  2  2  2  2  2  2  2  2   2
4  2  2  2  2  2  2  2  2  2   2
5  0  0  0  0  0  0  0  0  0   0

我想在每列上依靠0s,1s和2s的数量。 我想在每列上使用uniquetable,但问题是并非每列都有我想要计算的值。例如,第1列是唯一一个有1的人。

我想我可以做一个for循环,但是我认为必须有一个更好的方法来做它?

2 个答案:

答案 0 :(得分:3)

另一个选项是来自mtabulate

qdapTools
library(qdapTools)
t(mtabulate(df1))
#  V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
#0  2  3  3  3  3  3  3  3  3   3
#1  1  0  0  0  0  0  0  0  0   0
#2  2  2  2  2  2  2  2  2  2   2

答案 1 :(得分:2)

您可以在table数据

之后运行stack
table(stack(df))
      ind
values V1 V10 V2 V3 V4 V5 V6 V7 V8 V9
     0  2   3  3  3  3  3  3  3  3  3
     1  1   0  0  0  0  0  0  0  0  0
     2  2   2  2  2  2  2  2  2  2  2