446 Stimmen

Extrahieren bestimmter Spalten aus einem Datenrahmen

Ich habe einen R-Datenrahmen mit 6 Spalten, und ich möchte einen neuen Datenrahmen erstellen, der nur drei der Spalten enthält.

Angenommen, mein Datenrahmen ist df und ich möchte Spalten extrahieren A , B y E Dies ist der einzige Befehl, den ich herausfinden kann:

 data.frame(df$A,df$B,df$E)

Gibt es eine kompaktere Möglichkeit, dies zu tun?

5 Stimmen

select(df, c('A','B','C'))

21voto

so860 Punkte 408

Aus irgendeinem Grund nur

df[, (names(df) %in% c("A","B","E"))]

hat für mich funktioniert. Alle oben genannten Syntaxen ergaben "undefinierte Spalten ausgewählt".

15voto

Aman Burman Punkte 299

Sie können auch die sqldf Paket, das Selects auf R-Datenrahmen als :

df1 <- sqldf("select A, B, E from df")

Dies ergibt als Ausgabe einen Datenrahmen df1 mit Spalten: A, B, E.

5voto

moodymudskipper Punkte 42381

Sie können verwenden with :

with(df, data.frame(A, B, E))

0voto

fxi Punkte 559

[ und Teilmenge sind nicht austauschbar:

[ gibt einen Vektor zurück, wenn nur eine Spalte ausgewählt ist.

df = data.frame(a="a",b="b")    

identical(
  df[,c("a")], 
  subset(df,select="a")
) 

identical(
  df[,c("a","b")],  
  subset(df,select=c("a","b"))
)

5 Stimmen

Nicht, wenn Sie die drop=FALSE . Beispiel: df[,c("a"),drop=F]

-1voto

Mohamed Rahouma Punkte 955
df<- dplyr::select ( df,A,B,C)

Sie können den neu erstellten Daten auch einen anderen Namen zuweisen

data<- dplyr::select ( df,A,B,C)

2 Stimmen

Dies war bereits in der akzeptierten Antwort enthalten

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X