是否可以选择data.table的一列并返回一个向量?在基数 R 中,参数drop=TRUE
可以解决问题。例如
library(data.table)
dat <- as.data.table(iris)
dat[,"Species"] # returns data.table
dat[,"Species", drop=TRUE] # same
iris[, "Species", drop=TRUE] # a factor, wanted result
有没有办法用data.table
做到这一点?
编辑:dat[,Species] 方法很好,但是我需要一种方法,我可以在变量中传递列名:
x <- "Species"
dat[,x, drop=TRUE]
对于data.frame
,默认值为drop = TRUE
,而在data.table
中,当它在内部完成时,情况正好相反。 据?data.table
drop - 从不被 data.table 使用。请勿使用。它需要在这里,因为data.table继承自data.frame。
为了获得相同的行为,我们可以使用[[
通过传递字符串来提取列
identical(dat[["Species"]], iris[, "Species"])
#[1] TRUE
或
dat$Species
通过使用[[
或$
,它提取为vector
,同时也绕过data.table
开销
请参阅data.table
常见问题解答 #1.1。这是自 2006 年以来的一项功能。