我有两个向量:
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)
如何从Y中找到每个数字中X的唯一数字?
我知道如何从Y中找到每个数字中X的非唯一数字的数量:
r=aggregate(x ~ y , data= data, FUN=length)
答案 0 :(得分: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
答案 1 :(得分: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
答案 2 :(得分:0)
你可以这样做:
rowSums(!!table(y,x))
# 1 2 3 4 5
# 3 2 2 4 2