Giải pháp cơ bản là tải dữ liệu của bạn, xóa những gì bạn không muốn và lưu dưới dạng dữ liệu mới, sạch.
Một cách khác để xử lý tình trạng này là để kiểm soát rdata tải bằng cách tải nó sở hữu môi trường
sandbox <- new.env()
load("some_old.RData", sandbox)
Bây giờ bạn có thể nhìn thấy những gì bên trong
ls(sandbox)
sapply(ls(sandbox), function(x) object.size(get(x,sandbox)))
Sau đó, bạn có một vài posibilities :
- viết nội dung gì bạn muốn rdata mới:
save(A, B, file="clean.RData", envir=sandbox)
- loại bỏ những gì bạn không muốn từ môi trường
rm(x, z, u, envir=sandbox)
- làm bản sao của biến mà bạn muốn trong không gian làm việc toàn cầu và loại bỏ
sandbox
Tôi thường làm điều gì đó tương tự như tùy chọn thứ ba. Tải dữ liệu của tôi, thực hiện một số kiểm tra, chuyển đổi, sao chép dữ liệu cuối cùng sang không gian làm việc chung và xóa môi trường.
Bạn luôn có thể thực hiện những gì bạn muốn.Vì vậy,
- tải dữ liệu
vars <- load("some_old.RData")
- Nhận kích thước
vars_size <- sapply(vars, function(x) object.size(get(x)))
- thứ tự họ
vars <- vars[order(vars_size, decreasing=TRUE)]
vars_size <- vars_size [order(vars_size, decreasing=TRUE)]
- hộp thoại Make (phụ thuộc vào hệ điều hành, đây là Windows)
vars_with_size <- paste(vars,vars_size)
vars_to_save <- select.list(vars_with_size, multiple=TRUE)
- Hủy bỏ những gì bạn không muốn
rm(vars[!vars_with_size%in%vars_to_save])
Để hình thức tốt đẹp của kích thước đối tượng tôi sử dụng giải pháp dựa trên getAnywhere(print.object_size)
pretty_size <- function(x) {
ifelse(x >= 1024^3, paste(round(x/1024^3, 1L), "Gb"),
ifelse(x >= 1024^2, paste(round(x/1024^2, 1L), "Mb"),
ifelse(x >= 1024 , paste(round(x/1024, 1L), "Kb"),
paste(x, "bytes")
)))
}
Sau đó, trong 4. người ta có thể sử dụng paste(vars, pretty_size(vars_size))
Xem câu hỏi liên quan này http://stackoverflow.com/questions/2822532/how-can-i-neatly-clean-my-r-workspace-while-preserving-certain-objects –