【发布时间】:2015-11-12 00:44:05
【问题描述】:
对于从 data.table 中提取级别,标准方法是将data.table 作为列表覆盖还是以某种方式在括号内进行?
例如,使用 npk 内置数据,我知道前 4 列是因子,我想提取水平。
dat <- as.data.table(npk)
这就是我想要的,关卡列表
levs <- lapply(dat[,1:4,with=FALSE], levels)
但是,我是否错过了类似这样的 data.table 方式? (这是不对的,因为它会重复关卡以匹配最长的关卡)。
levs2 <- dat[, lapply(.SD, levels), .SDcols=names(dat)[1:4]]
ps。抱歉,如果这看起来很愚蠢,我只是想学习正确的 data.table 习语。
【问题讨论】:
-
dat[, .(Var=names(.SD), levs=lapply(.SD,levels)), .SDcols=names(dat)[1:4] ]如果你想得到一些复杂的data.table输出。
标签: r data.table