通常、列を取得する場合、それはベクトルです。同じ行名と対応する列名を持つ data.frame として保持するにはどうすればよいですか?
質問する
2818 次
3 に答える
13
目的の列をカンマで呼び出す代わりに、つまり data.frame[,i] を使用して data.frame[i] を使用して、クラスを data.frame として保持し、行名も保持します。
data.frame[,i] #As a vector
data.frame[i] #As a data.frame
于 2012-04-06T21:43:22.337 に答える
6
次のように引数 drop = FALSE を使用します。
mtcars[, 1, drop = FALSE]
于 2012-04-06T19:09:40.483 に答える
0
data.frameをサブセット化するときに単一の数値を指定すると、1列のdata.frameが得られます。これは、列全体を返すために「欠落している」i
引数を必要とする行列サブセットとは異なります(その後、ベクトルに変換されます)。
# mtcars is a data.frame
mtcars[1] # first column
str(mtcars[1]) # is still a data.frame
# 'data.frame': 32 obs. of 1 variable:
# $ mpg: num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# MTCARS is a matrix
MTCARS <- as.matrix(mtcars)
as.matrix(MTCARS)[1] # only the first element
# [1] 21
str(as.matrix(MTCARS)[,1]) # the first column, as a vector
Named num [1:32] 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
- attr(*, "names")= chr [1:32] "Mazda RX4" "Mazda RX4 Wag" "Datsun 710" ...
于 2012-04-06T19:19:06.560 に答える