Tôi chi tiêu đã giờ cố gắng để làm công việc này và cảm thấy rằng tôi đang thiếu một cái gì đó đơn giản:Làm thế nào để tiết kiệm một môi trường R độc lập đối tượng
my_env = new.env(hash = TRUE, parent = .GlobalEnv)
my_env[['echo']] <- function(x) {x}
my_env[['echo']](123)
[1] 123
my_env$echo(123)
[1] 123
save(my_env, file = "MyEnv.RData", envir = .GlobalEnv)
loaded_env <- load(file = "MyEnv.RData",envir = .GlobalEnv)
typeof(loaded_env)
[1] "character"
Khi tôi lưu toàn bộ không gian làm việc, chức năng được lưu lại và sau đó nạp lại (sau khi tôi đóng/mở R Studio). Nhưng ở đây, save()
và/hoặc load()
không hoạt động và tôi chỉ có một chuỗi trong môi trường của tôi sau khi tải.
Làm cách nào để lưu một đối tượng môi trường riêng biệt vào một tệp, không phải là không gian làm việc hoàn chỉnh? Sau đó tôi cần tất cả các đối tượng bên trong môi trường đó (my_env
) để được tải vào .GlobalEnv trong một phiên khác.
Cảm ơn! RDS hoạt động hoàn hảo! Làm thế nào tôi có thể serialize một đối tượng môi trường vào một vector char? Có một hàm 'serialize' - nó có trả về cùng một định dạng nhị phân như thể tôi sẽ đọc một tệp từ RDS không? –
'save',' saveRDS' và 'serialize' đều có đối số' ascii'. –
vì vậy nếu tất cả các đối số đều giống nhau, cả ba hàm đều trả về định dạng tương thích nhị phân? –