gpt4 book ai didi

r - 使用点-点时为 data.table 赋值

转载 作者:行者123 更新时间:2023-12-01 12:49:28 25 4
gpt4 key购买 nike

我想按名称从我的 data.table 中的多列中减去一个向量。我使用了一种带点点的方法,我似乎无法理解为什么最后一个赋值不起作用,因为这两个表达式在单独计算时都可以正常工作。我附上了一个可重现的例子,应该可以清楚地说明问题。

dt <- data.table("a_x" = rnorm(10),
"b_x" = rnorm(10),
"a_y" = rnorm(10),
"b_y" = rnorm(10),
"d" = rnorm(10)
)

XIND <- names(dt) %like% "_x"

MAT <- matrix(dt[,d], nrow = dim(dt[,..XIND])[1], ncol = dim(dt[,..XIND])[2])
dt[,..XIND] <- dt[,..XIND] - MAT

最佳答案

这是另一个对我来说更惯用的选项:

dt <- data.table("a_x" = 1:10, "b_x" = 2:11, "d" = 1:10)
XIND <- grep("_x$", names(dt))
dt[, (XIND) := .SD - d, .SDcols=XIND]

关于r - 使用点-点时为 data.table 赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60340485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com