9

通常、列を取得する場合、それはベクトルです。同じ行名と対応する列名を持つ data.frame として保持するにはどうすればよいですか?

4

3 に答える 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 に答える