相关疑难解决方法(0)

data.table列的类

我想知道如何在dt给定字符向量的data.table中确定列的类w.

可重复的例子:

dt <- data.table(matrix(1:10, 2))
w <- "V1"
Run Code Online (Sandbox Code Playgroud)

当您直接按名称指定列时,它将返回向量,以便您可以获取其类:

> dt[,V1]
[1] 1 2
> class(dt[,V1])
[1] "integer"
Run Code Online (Sandbox Code Playgroud)

但是,将其指定为字符向量,而是返回单列data.table:

> dt[,w,with=FALSE]
   V1
1:  1
2:  2
> class(dt[,w,with=FALSE])
[1] "data.table" "data.frame"
Run Code Online (Sandbox Code Playgroud)

我有点想要采用以下解决方案,但肯定有更好的方法:

dt[,eval(parse(text=paste0("class(",w,")")))]
Run Code Online (Sandbox Code Playgroud)

所以有两个问题:

  1. 有没有更好的(更简洁)获得单个列的类(没有放弃上述解决方案通过评估classdata.table环境中的调用获得的速度?
  2. 有没有办法获得所有列的类的向量,无论如何sapply( myDataFrame, class)

r data.table

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

data.table ×1

r ×1