Sie können eine Untermenge mit Hilfe eines Vektors von Spaltennamen bilden. Ich bevorzuge diesen Ansatz gegenüber solchen, die Spaltennamen wie Objektnamen behandeln (z.B. subset()
), insbesondere bei der Programmierung in Funktionen, Paketen oder Anwendungen.
# data for reproducible example
# (and to avoid confusion from trying to subset `stats::df`)
df <- setNames(data.frame(as.list(1:5)), LETTERS[1:5])
# subset
df[c("A","B","E")]
Beachten Sie, dass es kein Komma gibt (d. h. es ist nicht df[,c("A","B","C")]
). Der Grund dafür ist df[,"A"]
gibt einen Vektor zurück, keinen Datenrahmen. Aber df["A"]
wird immer einen Datenrahmen zurückgeben.
str(df["A"])
## 'data.frame': 1 obs. of 1 variable:
## $ A: int 1
str(df[,"A"]) # vector
## int 1
Merci à David Dorchies dass Sie darauf hingewiesen haben, dass df[,"A"]
gibt einen Vektor statt eines Datenrahmens zurück, und zu Antoine Fabri für den Vorschlag einer besseren Alternative (oben) zu meiner ursprünglichen Lösung (unten).
# subset (original solution--not recommended)
df[,c("A","B","E")] # returns a data.frame
df[,"A"] # returns a vector
5 Stimmen
select(df, c('A','B','C'))