gpt4 book ai didi

r - 数据表 := assignments when variable has same name as a column

转载 作者:行者123 更新时间:2023-12-04 13:31:35 24 4
gpt4 key购买 nike

我在为位置赋值时发现了这种奇怪的行为。如果变量与列同名,则认为我们在谈论该列:

library(data.table)
dt1 <- data.table(a = integer(1))
a <- 18
dt1[1, a:=a]

结果:

> dt1
a
1: 0


我们可以通过使用不同的名称来避免这种情况:
dt2 <- data.table(a = integer(1))
b <- 18
dt2[1, a:=b]

结果:

>dt2
a
1: 18


但是有没有另一种方法可以在不更改变量名称的情况下做到这一点?我读过 .() ..()符号,但我不确定我是否可以在这里使用它,例如:
dt1 <- data.table(a = integer(1))
a <- 18
dt1[1, a:=..(a)]

Error in eval(expr, envir, enclos) : could not find function ".."

最佳答案

您可以随时使用 get ,它允许您指定环境:

dt1[1, a := get("a", envir = .GlobalEnv)]
# a
#1: 18

要不就:
a <- 42
dt1[1, a := .GlobalEnv$a]
# a
#1: 42

关于r - 数据表 := assignments when variable has same name as a column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32738499/

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