2016-06-17 6 views
0

Jede Person hat mehrere Beobachtungen (Zeilen) in meinem Datensatz - bis zu 5 pro Person. Ich muss eine Untergruppe von Personen herausziehen, die meine Kriterien bei jeder einzelnen ihrer Beobachtungen erfüllt haben, ohne jedoch irgendwelche ihrer Beobachtungen zu verlieren. Im Wesentlichen würde es so aussehen:Behalten Sie mehrere Beobachtungen für einzelne intakte, wenn diskriminierende Variablen Antworten

ID x  
1  1 
1  2 
1  3 
1  9 
1  9 
2  2 
2  7 
2  8 
3  4 
3  1 
3  2 
3  1 

ich meine Daten Teilmenge würde, so dass nur Menschen, die jemals einen 1 für die Variable x aufgezeichnet hätte, hätte gehalten werden. Die zweite Person wäre ausgeschlossen, aber alle Beobachtungen für die Personen 1 und 3 würden in einem neuen Datenrahmen bleiben. Hier

ID x  
1  1 
1  2 
1  3 
1  9 
1  9 
3  4 
3  1 
3  2 
3  1 

Antwort

1

ist ein Weg,

ind <- unique(df$ID[df$x==1]) 
df[df$ID %in% ind, ] 
# ID x 
#1 1 1 
#2 1 2 
#3 1 3 
#4 1 9 
#5 1 9 
#9 3 4 
#10 3 1 
#11 3 2 
#12 3 1