Chciałbym zapisać całą masę relatywnie dużych ramek danych, jednocześnie minimalizując ilość miejsca zajmowanego przez pliki. Podczas otwierania plików muszę mieć możliwość kontrolowania, jakie imiona są nadawane w obszarze roboczym.Zapisywanie ramki danych jako pliku binarnego
Zasadniczo szukam symantics dput i dget, ale z plikami binarnymi.
Przykład:
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
}
Dobra odpowiedź Shane. Chciałbym użyć "save", ale nie podoba mi się to, że nie mogę kontrolować nazwy danych dotyczących ładowania –
Można zawinąć funkcję load() w nowej funkcji, która zna nazwę danych w pliku i zmienia jego nazwę na wartość zwracaną. Funkcja load wstawi zmienne do środowiska/namespace funkcji. – Harlan
Możesz zrobić to, co sugerował Harlan, lub po prostu zapisać jedną ramkę danych na plik i nadać plikowi i ramce danych tę samą nazwę. Wtedy będziesz miał takie samo zachowanie jak to, co opisałeś powyżej w dput i dget, prawda? – Shane