To musi być duplikat, ale nie mogę go znaleźć. Więc idzie.Dopasuj/znajdź wiersze na podstawie wielu wymaganych wartości w jednym wierszu w R
Mam data.frame z dwiema kolumnami. Jedna zawiera grupę, a druga zawiera kryterium. Grupa może zawierać wiele różnych kryteriów, ale tylko jedną na wiersz. Chcę zidentyfikować grupy, które zawierają trzy określone kryteria (ale będą one wyświetlane w różnych wierszach.W moim przypadku chcę zidentyfikować wszystkie grupy, które zawierają kryteria "I", "E", "C." Grupy mogą zawierać dowolną liczbę i połączenie tych i kilku innych pism.
test <- data.frame(grp=c(1,1,2,2,2,3,3,3,4,4,4,4,4),val=c("C","I","E","I","C","E","I","A","C","I","E","E","A"))
> test
grp val
1 1 C
2 1 I
3 2 E
4 2 I
5 2 C
6 3 E
7 3 I
8 3 A
9 4 C
10 4 I
11 4 E
12 4 E
13 4 A
W powyższym przykładzie, chcę zidentyfikować GRP 2 i 4, ponieważ każdy z nich zawiera litery E, i, i C.
Dzięki!
Przypuszczam trzy najgłębsze unikatowe() wywołuje są całkiem zbędne i niepotrzebne. Mój aktualny zestaw danych składa się z kilku milionów wierszy i nie byłem pewien, czy byłby on szybszy. – Jordan
Interesujący problem! Jest znany jako ** i/lub dylemat zapytania ** w kontekście bazy danych SQL, ponieważ ograniczenie ** i ** wymaga ograniczenia w więcej niż jednym wierszu (co nie jest mocą SQL). Chciałbym zobaczyć (lepsze) rozwiązanie R! –
Ile unikalnych 'val' znajduje się w zestawie danych? W zależności od liczby informacje te mogą być podstawą niektórych rozwiązań. – JasonAizkalns