2017-07-06 10 views
1

Ich brauche Teilmengen Zeilen von Datenrahmen nach ihrem Namen. Ich habe den folgenden Code ausprobiert, aber es funktioniert nicht.Teilmenge ein Datenframe nach Zeilennamen verschiedener Zeilen

Name plot 
12  25 
22  23 
14  12 
16  22 
23  54 

DF.new <- subset(DF, rownames== c("12" , "16")) 
+0

'DF $ Name' kann nur' Name' –

+0

"Problem" ist nicht ganz klar sein. Die spezifische Fehlermeldung oder Ausgabe wäre nützlicher. Auch ein spezifisches Beispiel dessen, was die Ausgabe sein soll (ich nehme die Zeilen an, in denen Name 12 oder 16 ist?). Seien Sie auch vorsichtig, um zu überprüfen, ob die Spalte Name eine Zahl oder ein Zeichen ist. Wenn es numerisch ist, müssen Sie die Anführungszeichen von den Zahlen weglassen, wenn Sie% in% verwenden. –

Antwort

1

Mit dplyr:

library(dplyr) 
DF <- data.frame(row.names=c("12a", "22a", "13a"), Name=c("12","22","13"), plot=c(25,18,9)) 

Wenn Sie von der Datenrahmen Spalte "Name" filtern möchten, dann:

DF.new -> DF %>% filter(Name %in% c("12", "16")) 

Wenn Sie mit dem tatsächlichen row.names der gefiltert werden soll df, dann:

DF.new -> DF %>% filter(row.names(DF) %in% c("12a","13a")) 

Oder Basis R mit:

DF.new -> DF[DF$Name %in% c("12","13"), ] oder

DF.new -> DF[row.names(DF) %in% c("12a","13a"),]

Verwandte Themen