我想保存一大堆相對較大的數據幀,同時最小化文件佔用的空間。打開文件時,我需要能夠控制它們在工作區中給出的名稱。將數據幀保存爲二進制文件
基本上我在尋找dput和dget的語義,但是使用二進制文件。
例子:
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
}
好的回答謝恩。我想使用'save',但不喜歡加載數據時無法控制數據名稱的事實 – 2009-10-28 15:00:38
可以將load()函數包裝到一個知道數據名稱的新函數中在文件中並將其重命名爲返回值。加載函數將把變量插入到函數的環境/名稱空間中。 – Harlan 2009-10-28 15:22:26
您可以執行Harlan建議的操作,或者您可以爲每個文件保存一個數據框,併爲文件和數據框同名。那麼你將會和上面用dput和dget描述的行爲一樣,對嗎? – Shane 2009-10-28 15:38:59