我需要一行代码来搜索数字向量并返回出现次数。例计算重复次数的次数R代码
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
谢谢!
我需要一行代码来搜索数字向量并返回出现次数。例计算重复次数的次数R代码
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
谢谢!
您可以
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
Arun在评论中的建议是要走的路:
> sum(a %in% c(15,32))
#[1] 5
更多的一般用法:
sum(a %in% unique(a[duplicated(a)]))
或者一个班轮在弗里克先生的做法的精神:
sum(a %in% names(which(table(a) > 1)))
另一个变化是抓住所有重复的值,则使用length()
对于len
和unique()
对于dup
x <- a[duplicated(a) | duplicated(a, fromLast=TRUE)]
length(x)
# [1] 5
unique(x)
# [1] 15 32