计算向量中出现的某些数字对

时间:2014-04-10 11:43:35

标签: r count

如何计算数据帧的向量或列中的某些数字对有什么好的解决方案吗?

我有这样的数据,我想计算在向量中出现了多少对与组合2 3(或其他组合)的对。或者在3之前出现2次。

 set.seed(1)
 sample(1:5, 50, replace=T)

结果应该是:

number combination   count
2 3                  2
4 1                  4
5 4                  3

我尝试过功能匹配,但是两个数字的组合不起作用。

任何帮助将不胜感激,
马丁

2 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情:

x <- sample(1:50, 50, rep=T)
table(paste(x[-length(x)], x[-1]))
# with dplyr
y <- data.frame(x=paste(x[-length(x)], x[-1]))
summarise(group_by(y,x), N=n())
# or if you need to keep the first and second value
x <- sample(1:5, 50, rep=T)
y <- data.frame(x1=x[-length(x)], x2=x[-1])
summarise(group_by(y, x1, x2), N=n())

答案 1 :(得分:1)

使用表格:

set.seed(1)
sample(1:5, 50, replace=T)
## [1] 2 2 3 5 2 5 5 4 4 1 2 1 4 2 4 3 4 5 2 4 5 2 4 1 2 2 1 2 5 2 3 3 3 1 5 4 4 1 4 3 5 4 4 3 3 4 1 3 4 4
table(data.frame(first=x[-length(x)],second=x[-1]))
##      second
## first 1 2 3 4 5
##     1 2 0 2 4 1
##     2 1 3 2 1 1
##     3 4 1 5 2 3
##     4 2 4 2 1 2
##     5 0 0 4 2 0

因此5 5对为0,3 1为4,3 3为5。