Из документации save.ffdf:Grow кадр FFDF данных на диске постепенно
Использование «save.ffdf» автомагически устанавливает поле «финализации-х из„FF“ векторов„„закрыть““. Это означает, что данные будут сохранены на диске , когда объект будет удален или сеансы R закрыты. Данные могут быть удалены либо с помощью «delete», либо путем удаления каталога, в котором объект был сохранен ('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' папке' ~/Desktop? – qed