說我有一個data.frame:如何從data.frame中提取單個列作爲data.frame?
df <- data.frame(A=c(10,20,30),B=c(11,22,33), C=c(111,222,333))
A B C
1 10 11 111
2 20 22 222
3 30 33 333
如果我選擇兩個(或更多)列我得到一個data.frame:
x <- df[,1:2]
A B
1 10 11
2 20 22
3 30 33
這就是我想要的。不過,如果我只選擇一個專欄中,我得到一個數值向量:
x <- df[,1]
[1] 1 2 3
我曾嘗試使用as.data.frame(),它不會改變結果的兩個或多個列。它在一列的情況下返回data.frame,但不保留列名:
x <- as.data.frame(df[,1])
df[, 1]
1 1
2 2
3 3
我不明白爲什麼它的行爲這樣。在我看來,如果我提取一個或兩個或十個列,應該沒有什麼不同。 IT應該總是返回一個向量(或矩陣),或者總是返回一個data.frame(使用正確的名稱)。我錯過了什麼?謝謝!