データ フレーム オブジェクトが更新されない理由がよくわかりません
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"