Я получаю поведение, которое я не понимаю при сохранении среды. Приведенный ниже код демонстрирует проблему. Я ожидал, что два файла (far-too-big.RData
и right-size.RData
) будут одинакового размера, а также очень малы, потому что среды, которые они содержат, пусты.
Фактически, far-too-big.RData
заканчивается тем же размером, что и bigfile.RData
.
Получаю те же результаты, используя 2.14.1 и 2.15.2, как на WinXP 5.1 SP3. Может ли кто-нибудь объяснить, почему это происходит?
Оба far-too-big.RData
и right-size.RData
при загрузке в новый сеанс R, похоже, ничего не содержат. т.е. они возвращают character(0)
в ответ на ls()
. Однако, если я переключу сохранение, включив ascii=TRUE
и откройте результат в текстовом редакторе, я вижу, что far-too-big.RData
содержит данные в bigfile.RData
.
a <- matrix(runif(1000000, 0, 1), ncol=1000)
save(a, file="bigfile.RData")
fn <- function() {
load("bigfile.RData")
test <- new.env()
save(test, file="far-too-big.RData")
test1 <- new.env(parent=globalenv())
save(test1, file="right-size.RData")
}
fn()