可能很容易。
我有一个data.frame
,其中有三列:cluster
,group
和id
。每个
set.seed(1)
df <- data.frame(cluster=letters[sample(length(letters),1000,replace=T)],
group=LETTERS[1:2][sample(2,1000,replace=T)],
id=1:1000)
每个cluster
可以由一个或多个group
s表示,其中每个组可以由一个或多个id
s表示。
我正在寻找一种快速的子集df
方法,只保留cluster
s同时显示group
的行。
这对我的实际数据维度来说非常慢:
library(dplyr)
do.call(rbind,lapply(unique(df$cluster),function(l){
if(length(unique(dplyr::filter(df,cluster == l)$group) == 2)){
return(dplyr::filter(df,cluster == l))
} else{
return(NULL)
}
})
使用dplyr
吗?