從save.ffdf的文檔:生長ffdf數據幀在磁盤上逐漸
使用「save.ffdf」自動地設置的FF「的的終結器的‘’ 向量‘‘關閉’’。這意味着當對象被刪除或R會話關閉時,數據將保留在 磁盤上。數據可以 被刪除或者使用「刪除」或通過除去其中 對象被保存(「DIR」)的目錄。
我想先從一個小的ffdf數據框開始,一次添加一些新數據,然後將它放在磁盤上。所以,我做了一個小實驗:
# in R
ffiris = as.ffdf(iris)
save.ffdf(ffiris, dir = "~/Desktop/iris")
# in bash
ls ~/Desktop/iris/
## ffiris$Petal.Length.ff ffiris$Petal.Width.ff ffiris$Sepal.Length.ff ffiris$Sepal.Width.ff ffiris$Species.ff
# in R
# add a new column
ffiris =transform(ffiris, new1 = rep(99, nrow(iris)))
rm(ffiris)
# in bash
ls ~/Desktop/iris/
## ffiris$Petal.Length.ff ffiris$Petal.Width.ff ffiris$Sepal.Length.ff ffiris$Sepal.Width.ff ffiris$Species.ff
事實證明,它不會自動更新磁盤上的數據FF,當我刪除ffiris。怎麼樣手動保存它?
# in R
# add a new column
ffiris =transform(ffiris, new1 = rep(99, nrow(iris)))
save.ffdf(ffiris, "~/Desktop/iris")
# in bash
ls ~/Desktop/iris/
## ffiris$Petal.Length.ff ffiris$Petal.Width.ff ffiris$Sepal.Length.ff ffiris$Sepal.Width.ff ffiris$Species.ff
嗯,仍然沒有運氣。爲什麼?
有關保存之前刪除的文件夾呢?
# in R
ffiris = as.ffdf(iris)
unlink("~/Desktop/iris", recursive = TRUE, force = TRUE)
save.ffdf(ffiris, "~/Desktop/iris", overwrite = TRUE)
ffiris =transform(ffiris, new1 = rep(99, nrow(iris)))
unlink("~/Desktop/iris", recursive = TRUE, force = TRUE)
save.ffdf(ffiris, "~/Desktop/iris", overwrite = TRUE)
# in bash
ls ~/Desktop/iris/
# ls: /Users/ky/Desktop/iris/: No such file or directory
即使是陌生人。 即使這一切都有效,它仍然會非常低效。我正在尋找類似的東西:
updateOnDisk(ffiris)
任何人都可以幫忙嗎?
在最後一行,並'save.ffdf'覆蓋所有現有的載體,或者只是添加一個新的'〜/桌面/ iris'文件夾? – qed