R - encontra todos os valores exclusivos entre subconjuntos de um quadro de dados
Eu tenho um quadro de dados com duas colunas. A primeira coluna define subconjuntos dos dados. Eu quero encontrar todos os valores na segunda coluna que aparecem apenas em um subconjunto na primeira coluna.
Por exemplo, de:
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
Eu gostaria de extrair o seguinte quadro de dados.
data_subsets data_values
A 1
A 5
B 6
B 7
Eu tenho brincado comduplicated
mas eu simplesmente não consigo fazer funcionar. Qualquer ajuda é apreciada. Há uma série de tópicos abordando problemas semelhantes, espero não ter ignorado a resposta em minhas pesquisas!
EDITAR
Eu modifiquei a abordagem de @Matthew Lundberg de contar o número de elementos e extrair do quadro de dados. Por alguma razão, sua abordagem não estava funcionando com o quadro de dados que eu tinha, então eu criei isso, que é menos elegante, mas faz o trabalho:
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),]