如何使用R data.table的env参数?调用时提示未使用参数错误
问题
在使用data.table官方推荐的编程方法时触发参数错误,环境配置:
- R版本:4.2.3
- data.table版本:1.14.8
执行代码:
packageVersion("data.table") # [1] ‘1.14.8’ DT = as.data.table(iris) v1 = "Petal.Width" v2 = "Sepal.Width" DT[, .(total = sum(v1, v2)), env = list(v1 = v1, v2 = v2)]
报错内容:
Error in `[.data.table`(DT, , .(total = sum(v1, v2)), env = list(v1 = v1, : unused argument (env = list(v1 = v1, v2 = v2))
解决方案
env参数是data.table 1.14.10版本才引入的新功能,你的当前版本(1.14.8)不支持该参数,因此报错。
可选两种处理方式:
升级data.table至最新版本
运行以下命令完成升级:install.packages("data.table")升级后原代码可正常执行。
使用兼容低版本的写法
若无法升级,可通过以下两种方式实现相同需求:- 方式一:使用
get()函数DT[, .(total = sum(get(v1), get(v2)))] - 方式二:结合
.SDcols与rowSums(更适合多列求和场景)DT[, .(total = rowSums(.SD)), .SDcols = c(v1, v2)]
- 方式一:使用
内容的提问来源于stack exchange,提问作者displayname123
相关产品推荐
相关产品推荐

