我不太清楚为什么数据框对象不更新
d <- data.frame(titi=c(0))
(function(dataset) {
dataset[["toto"]] <- 1;
print(names(dataset)) #has "toto" and "titi"
})(d)
print(names(d)) # no has "toto", only "titi"
这里发生了什么 ?
我有一个解决方法,因为在我的代码中我还捕获了变量并使用 更新捕获的<<-
,但我想知道机制。
我知道一般突变的危险等等。我只是不明白这里的机制。
编辑
虽然这似乎是一个语言级别的特性的共识,但我不遵循这个论点,好像我使用了一个封闭的结构,数据表,它可以变异:
d <- data.table(titi=c(0))
(function(dataset) {
dataset[,toto:=1]
print(names(dataset)) #"titi" "toto"
})(d)
print(names(d)) #"titi" "toto"