如何在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
相关产品推荐
相关产品推荐

