У меня есть две таблицы данных, которые я оставил объединенными в функцию. Я переназначаю значения одного столбца, используя :=
, но он меняет значение этого столбца как в этой функции, так и в глобальной среде (см. Код)
library(data.table)
# Example data
dt1 <- data.table(letters=letters[1:6],
value=1:6 + 0.0)
dt2 <- data.table(letters=c("b", "e"),
value=rnorm(2))
# Define a function so we perform := in separate environment
f <- function(df1, df2) {
df1[df2, on="letters", value:=value-i.value]
}
# Run the function
f(dt1, dt2)
# Surprised to find it's updated dt1's value column
# despite dt1 being in a different environment
dt1
Есть ли способ получить :=
назначать только в той среде, в которой он используется? Или, по крайней мере, это не повлияет на среду, в которой я работаю ...