You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R的data.table中使用字符对象选取列?

在data.table中用字符变量选取列的正确方法

当你用i <- "Spot"后直接写DT[1,i]无法得到预期结果,是因为data.table默认会把j位置的表达式在自身数据环境中求值——它会去找DT里名为i的列,而非你定义的外部变量i。以下是几种可行的解决方式:

  • 使用with=FALSE参数,强制将j位置的字符变量当作列名索引:

    i <- "Spot"
    DT[1, i, with=FALSE]
    
  • 使用..前缀,告诉data.table去上层环境读取变量:

    i <- "Spot"
    DT[1, ..i]
    
  • 使用双括号[[直接提取列(适合需要单个列向量的场景):

    i <- "Spot"
    # 取第一行的该列值
    DT[[i]][1]
    # 或者先取第一行再提取列
    DT[1, ][[i]]
    

以上方法都能实现和DT[1,"Spot"]相同的效果,你可以根据实际场景选择。

内容的提问来源于stack exchange,提问作者Ziroque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 10:11:35