我有一个包含两列的数据框。第一列定义数据的子集。我想在第二列中找到仅出现在第一列的一个子集中的所有值。
例如,来自:
df=data.frame(
data_subsets=rep(LETTERS[1:2],each=5),
data_values=c(1,2,3,4,5,2,3,4,6,7))
data_subsets data_values
A 1
A 2
A 3
A 4
A 5
B 2
B 3
B 4
B 6
B 7
我想提取以下数据框。
data_subsets data_values
A 1
A 5
B 6
B 7
我一直在玩,duplicated
但我似乎无法让它发挥作用。任何帮助表示赞赏。有许多主题解决了类似的问题,我希望我在搜索中没有忽略答案!
编辑
我修改了@Matthew Lundberg 计算元素数量并从数据框中提取的方法。由于某种原因,他的方法不适用于我拥有的数据框,所以我想出了这个,它不太优雅但可以完成工作:
counts=rowSums(do.call("rbind",tapply(df$data_subsets,df$data_values,FUN=table)))
extract=names(counts)[counts==1]
df[match(extract,df$data_values),]