Tôi muốn lưu toàn bộ các khung dữ liệu tương đối lớn trong khi giảm thiểu dung lượng mà các tệp đó chiếm. Khi mở các tập tin, tôi cần để có thể kiểm soát những cái tên mà chúng được đưa ra trong không gian làm việc.Lưu khung dữ liệu dưới dạng tệp nhị phân
Về cơ bản, tôi đang tìm kiếm các tính năng symantics của dput và dget nhưng với các tệp nhị phân.
Ví dụ:
n<-10000
for(i in 1:100){
dat<-data.frame(a=rep(c("Item 1","Item 2"),n/2),b=rnorm(n),
c=rnorm(n),d=rnorm(n),e=rnorm(n))
dput(dat,paste("data",i,sep=""))
}
##much later
##extract 3 random data sets and bind them
for(i in 1:10){
nums<-sample(1:100,3)
comb<-rbind(dget(paste("data",nums[1],sep="")),
dget(paste("data",nums[2],sep="")),
dget(paste("data",nums[3],sep="")))
##do stuff here
}
Câu trả lời hay nhất Shane. Tôi muốn sử dụng 'lưu', nhưng không thích thực tế là tôi không thể kiểm soát tên của dữ liệu khi tải –
Bạn có thể bọc hàm load() vào một hàm mới biết tên của dữ liệu trong tệp và đặt lại tên cho giá trị trả lại. Hàm tải sẽ chèn các biến vào môi trường/không gian tên của hàm. – Harlan
Bạn có thể làm những gì Harlan đề nghị, hoặc bạn chỉ có thể lưu một dataframe cho mỗi tập tin, và cung cấp cho cả tệp và dataframe cùng tên. Sau đó, bạn sẽ có hành vi tương tự như những gì bạn mô tả ở trên với dput và dget, phải không? – Shane