如何计算数据帧的向量或列中的某些数字对有什么好的解决方案吗?
我有这样的数据,我想计算在向量中出现了多少对与组合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
我尝试过功能匹配,但是两个数字的组合不起作用。
任何帮助将不胜感激,
马丁
答案 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。