[英]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.