r语言 - 选择数据表的列并返回向量



是否可以选择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 年以来的一项功能。

最新更新