计算两列中的组合出现次数

时间:2015-02-02 00:48:37

标签: r find-occurrences

嗨我有一个数据框Y,如下所示

O  T  Dist
2  13 0.123 
2  3  0.452
2  4  0.213
3  5  0.231
3  8  0.213
4  5  0.123
5  8  0.543

我希望创建一个新的数据框,它计算一个数字出现在O列和T列组合的总次数。输出应该看起来像。

P  freq 
2  3
3  3
4  2
5  3
8  2
13 1

提前感谢您的帮助

3 个答案:

答案 0 :(得分:2)

这个怎么样?

as.data.frame(table(c(df$O, df$T)))
  Var1 Freq
1    2    3
2    3    3
3    4    2
4    5    3
5    8    2
6   13    1

答案 1 :(得分:1)

counts = table(c(df$O,df$T))
new.df = data.frame(P=as.integer(names(counts)),Freq=as.integer(counts))

答案 2 :(得分:0)

这是一个使用data.table的选项,我们在其中选择列" O"," T"在数据集" Y" (Y[-3]),unlist,创建" data.table"与setDT(list(..)),分组' V1'并获得计数(.N

library(data.table)
setDT(list(unlist(Y[-3])))[,.N, keyby=V1]
#   V1 N
#1:  2 3
#2:  3 3
#3:  4 2
#4:  5 3
#5:  8 2
#6: 13 1