簡體   English   中英

如何從 data.frame 中獲取每一列作為 data.frame(而不是向量)?

[英]how to get each column as data.frame (instead of a vector) from a data.frame?

通常當你得到一列時,它是一個向量。 如何將它保留為具有相同行名和相應列名的 data.frame?

而不是用逗號調用所需的列,即 data.frame[,i] 使用 data.frame[i] 將 class 保留為 data.frame 並保留行名稱。

data.frame[,i] #As a vector
data.frame[i] #As a data.frame

使用參數 drop = FALSE 如下:

mtcars[, 1, drop = FALSE]

如果在子集 data.frame 時指定單個數字,則會得到單列 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" ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM