计算重复R代码的出现次数

时间:2015-01-26 20:28:31

标签: r duplicates

我需要一行代码来搜索数字向量并返回出现次数。例如

a=c(15,32,27, 63, 15,99, 32,32)

dup=unique(a[duplicated(V.Ints)])
len=length(unique(duplicated(dup)))

我明白了:

> dup
#[1] 15, 32

> len
#[1] 2

但我需要的是:

> dup
#[1] 15, 32

> len
#[1] 5

谢谢!

3 个答案:

答案 0 :(得分:3)

Arun在评论中的建议是要走的路:

> sum(a %in% c(15,32))
#[1] 5

更常用:

sum(a %in% unique(a[duplicated(a)]))

或者根据弗里克先生的方法精神一句话:

sum(a %in% names(which(table(a) > 1)))

答案 1 :(得分:2)

您可以使用

计算频率
table(a)
# a
# 15 27 32 63 99 
#  2  1  3  1  1 

您可以过滤以仅查找重复项

Filter(function(x) x>1, table(a))
# a
# 15 32 
#  2  3 
names(Filter(function(x) x>1, table(a)))
# [1] "15" "32"

您可以使用总和来查找重复的总长度

sum(Filter(function(x) x>1, table(a)))
# [1] 5

答案 2 :(得分:2)

另一种变体是获取所有重复的值,然后使用length() lenunique() dup

x <- a[duplicated(a) | duplicated(a, fromLast=TRUE)]

length(x)
# [1] 5
unique(x)
# [1] 15 32