如何在同一数据帧中提取与另一个向量的每个唯一值对应的数据帧中的向量信息?

时间:2016-07-08 04:25:32

标签: r dataframe subset

假设我有以下数据框data -

V1   V2
A    3
A    2  
A    1
B    2
B    3
C    4
C    3
C    1
C    2

现在我想提取每个级别的信息,即{{1}的ABCDE} }}。例如,如果我选择在V1的每个级别V2中查看不同级别的总和,那么代码应该是什么? 我想要的输出是 -

V1

我尝试 V1 V2 A 6 B 5 C 10 lapply,但他们没有提供我想要的信息。当然我试过了sapply没有任何意义。

此外,事先(可能有点棘手),如果我想看sapply(data,unique)V2所有级别中唯一的值,如何去做吧? 谢谢!!

3 个答案:

答案 0 :(得分:3)

我认为这就是你想要的,因为它会找到不同群体共有的独特价值观:

每个级别V2

中的常见V1
Reduce(intersect, split(dat$V2, dat$V1))
#[1] 3 2

每个级别V1

中的常见V2
Reduce(intersect, split(dat$V1, dat$V2))
#[1] "C"

答案 1 :(得分:1)

使用data.table,我们可以在' V2'中找到unique值。在' V1'。

中很常见
library(data.table)
setDT(data)[,uniqueN(V1)==uniqueN(data$V1) , by = V2][(V1)]$V2
#[1] 3 2

和普通' V1'在' V2'

的每个独特元素中
setDT(data)[, if(uniqueN(V1)==1) .SD , by = V2]$V1
#[1] "C"

答案 2 :(得分:0)

也许这很有用

output <- aggregate(data=df,V2~.,FUN=paste)

为了提取V2中的常见值,V1的所有级别都使用此

Reduce(intersect,output$V2)