繁体   English   中英

R data.table:如何通过引用作为向量提供的列名来更新行?

[英]R data.table: How to update rows by reference with column names supplied as vector?

我想更新 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM