gpt4 book ai didi

r - data.table 列的类

转载 作者:行者123 更新时间:2023-12-04 05:07:15 25 4
gpt4 key购买 nike

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

可重现的例子:

dt <- data.table(matrix(1:10, 2))
w <- "V1"

当您直接按名称指定列时,它会返回向量,以便您可以获取其类:
> dt[,V1]
[1] 1 2
> class(dt[,V1])
[1] "integer"

但是,将其指定为字符向量,它会返回一个单列 data.table:
> dt[,w,with=FALSE]
V1
1: 1
2: 2
> class(dt[,w,with=FALSE])
[1] "data.table" "data.frame"

我已经尝试了以下解决方案,但肯定有更好的方法:
dt[,eval(parse(text=paste0("class(",w,")")))]

所以两个问题:
  • 是否有更好(更简洁)的方法来获取单个列的类(同时不放弃上述解决方案在 data.table 环境中评估对 class 的调用所获得的速度?
  • )
  • 有没有办法获得所有列的类的向量,类似于 sapply( myDataFrame, class) ?
  • 最佳答案

    这些似乎以您想要的方式工作:

  • class(dt[[w]])
  • sapply(dt,class)

  • 另外,做 2 然后子集适用于 1: sapply(dt,class)[w] .

    关于r - data.table 列的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835576/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com