r - R data.table:如何使用作为向量提供的列名通过引用更新行?
问题描述
我想更新 data.table 的某些行。但是,我无法使用列名访问向量。
什么是正确的方法?
MWE:
require(data.table)
dt <- data.table(a=c(1,2), b=c(3,4))
cols <- colnames(dt)
vec <- c(9,10)
dt[2,(cols):= list(vec)] # Not working
dt[2,(..cols):= list(vec)] # Not working
解决方案
只需稍作修改:
dt[2, (cols) := as.list(vec)]
要了解发生了什么,请比较两个版本:
as.list(vec)
# [[1]]
# [1] 9
#
# [[2]]
# [1] 10
list(vec)
# [[1]]
# [1] 9 10
推荐阅读
- swift - 无法识别的选择器发送到实例 Sprite Kit
- wix - 使用 Wix 创建一个安装程序,从 JFrog Artifactory 下载文件
- c# - C#:无法将存储在列表中的值写入控制台
- python - 基于当前行和 N 行之后的计算列
- assembly - 为什么我的第二个数字与我的第三个数字值相同?
- python - 图表已断开:无法在“x”层获得张量“x”张量的值。访问以下先前层没有问题:[]
- javascript - 映射一个数组以创建一个新的对数组
- unit-testing - 如何对语法中的规则进行单元测试
- c - 如何在c中间接设置结构的值?
- ruby - 如何获取数组中元素的最后几个数字?