计算R中数组中匹配的配对值的数量

时间:2018-11-01 15:26:54

标签: r

菜鸟问题。我正在寻找一种R的简单方法来计算数组(例如

)中匹配的一对值的数量
c("A","A","A") # 3 matched pairs
c("A","B","A") # 1 matched pair
c("A","B") # 0 matched pair

谢谢

1 个答案:

答案 0 :(得分:1)

似乎您想找到所有可能的相同元素对,它们的顺序无关紧要。然后:

matchPairs <- function(x) sum(choose(table(x), 2))

matchPairs(c("A", "A", "A"))
# [1] 3
matchPairs(c("A", "B", "A"))
# [1] 1
matchPairs(c("A", "B"))
# [1] 0
matchPairs(c("A", "A", "A", "B"))
# [1] 3
matchPairs(c("A", "A", "A", "B", "B"))
# [1] 4
matchPairs(c("A", "A", "A", "B", "B", "A"))
# [1] 7