计算向量中的对数

时间:2015-05-27 18:03:42

标签: r count duplicates categories

假设我有以下向量:

V<-c(-1,-1,1,1,1,-1,-1,1)

我想知道以下类别中不同对的数量:

(1,1),( - 1,1),(1,-1)和(-1,-1)

在我的例子中,每个都有一对。

我一直在尝试使用函数splitsetkey解决此问题,但我无法进行分类。

3 个答案:

答案 0 :(得分:2)

ng <- length(V)/2
table(sapply(split(V,rep(1:ng,each=2)),paste0,collapse="&"))
# -1&-1  -1&1  1&-1   1&1 
#     1     1     1     1 

这是一个更好的选择,也使用split,遵循@MartinMorgan的回答模式:

table(split(V,1:2))
#     2
# 1    -1 1
#   -1  1 1
#   1   1 1

答案 1 :(得分:2)

创建一个索引,该索引将重新循环以选择第一个(或当否定的第二个)元素

> idx = c(TRUE, FALSE)

然后交叉制表观察的发生

> xtabs(~V[idx] + V[!idx])
      V[!idx]
V[idx] -1 1
    -1  1 1
    1   1 1

答案 2 :(得分:1)

或者

table(apply(matrix(v, ncol = 2, byrow = TRUE), 1, paste, collapse = ",") )