2016-04-08 10 views
-1

Ich habe den DatensatzSubsetting datafram basierend auf Zeilenwert

df <- read.table(text = " a b c 
       X Y Z", header = T) 

und ich filtern möchten basierend auf Zeilenwert. Z.B. halten Sie die Spalte mit Zeilenwert X, Y aber:

df[1,] %in% c("X", "Y") 

kehrt

[1] FALSE FALSE FALSE 
+3

Ihre Spalten werden in Faktoren umgewandelt! benutze 'as.is = TRUE' oder' stringsAsFactors = FALSE' in 'read.table()' – jogo

Antwort

3

Sie sind in der Nähe. Verwenden Sie diesen Index der Werte TRUE und FALSE, um Spalten mit TRUE zu unterteilen.

df[, sapply(df[1, ], as.character) %in% c("X", "Y"), drop = FALSE] 
+0

gibt einen leeren Datenrahmen zurück – user2963882

+0

@ user2963882 siehe meine Bearbeitung. Sie müssen alle Spalten in Zeichen zwingen. –

+0

Immer noch ein Problem. Wenn ich nur nach c ("X") filtriere, wird der Spaltenname nicht zurückgegeben. Just [1] X Levels: X, anstatt A X – user2963882

Verwandte Themen