【发布时间】:2019-11-29 20:21:30
【问题描述】:
是否可以选择 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.table版本中,您只需说dat[, Species]。你在这里得到一个factor因为你从iris数据集中的一个因素开始。 (我没有投反对票。) -
试试
dat[,get(x), drop=TRUE](也不是我的反对意见) -
@Karsten 如果您从 real 问题开始,它会有所帮助。尝试
colnam <- "Species",然后是dat[, ..colnam][[1]]。我认为,所有这些都在data.tableFAQ 中......
标签: r data.table