2014-07-17 73 views
1

各值多少我有两个向量:如何找到唯一值的矢量从另一个缩放的矢量

x <- c(1,5,3,2,3, 4,1,2,3,4, 10,5,2,10,12) 
y <- c(1,1,2,2,2, 3,3,1,4,4, 4,5,5,4,4) 

我怎样才能找到独特的编号,从X从Y分别号码是多少?

我知道如何找到非唯一号码的数量从X对Y的每个号码:

r=aggregate(x ~ y , data= data, FUN=length) 

回答

1

使用data.table,这是很容易的:

require(data.table) 
DT = data.table(x,y) 
unique(DT, by=c("x", "y"))[, .N, by=y] 
# y N 
# 1: 1 3 
# 2: 2 2 
# 3: 3 2 
# 4: 4 4 
# 5: 5 2 
+0

谢谢!伟大的方法。 – user45415631

+0

有点不同的问题:如何从y向量中为每个值找到1s,2s的数目? – user45415631

+0

@ user45415631'DT [,.N,keyby = list(y,x)]'? Arun - 在那个'unique'中指定'by'的意义何在? – eddi

1

你可以做到这一点王氏dplyr这样:

data.frame(x,y) %>% 
    group_by(y) %>% 
    summarize(nb=length(unique(x))) 

其中给出:

y nb 
1 1 3 
2 2 2 
3 3 2 
4 4 4 
5 5 2 
0

你可以这样做:

rowSums(!!table(y,x)) 
# 1 2 3 4 5 
# 3 2 2 4 2 
相关问题