R'de bir data.frame nasıl kaydedilir?


137

R'de çok büyük olmayan bir data.frame yaptım, ancak oluşturulması biraz zaman alıyor. Bir dosya olarak kaydetmek istiyorum, hangi R daha açabilirsiniz?

Yanıtlar:


176

Birkaç yol var. Bunun bir yolu, save()nesneyi kaydetmek için kullanmaktır . veri çerçevesi için foo:

save(foo,file="data.Rda")

Sonra yükleyin:

load("data.Rda")

Ayrıca write.table(), tabloyu düz metin olarak kaydetmek veya dput()tabloyu yeniden oluşturmak üzere R kodu almak için veya bunun gibi bir şey kullanabilirsiniz .


2
Ayrıca " sayfanın " daha güvenli " olduğunu söylese de dumpoluşturulan dosyalar source()-ed olurdu . help(dump)save
IRTFM

4
Hep tercih ediyorum bu yüzden, düz metin olarak verileri depolamak tercih dump()üzerinde save()ve write.table()aşırıdump()
Sacha Epskamp

O write.table 0 yılların ve bir faktör olarak 1 yılların bir sütun kurmak zorunda gibi şeyleri korumak olmayacak düzeltmek, ama bu mıyım save()/ load()olur mu? Eğer öyleyse, bu da dikkate alınması gereken bir şey. Genellikle bazı .csv dosyalarını işleme bölümü var ve onları sevdiğim yere aldığımda, onları kaydetmeyi tercih ediyorum, bu yüzden projemi her ziyaret ettiğimde bu kodu yeniden çalıştırmak zorunda değilim. Bu nedenle, yapının / yapının ince ayarlarının korunması dikkate alınmalıdır.
Hendy

4
Evet. dump()yapıyı da kurtarır. Bununla ilgili güzel bir şey write.table, birçok yazılımın içe aktarabileceği şekilde tablolar yazmasıdır.
Sacha Epskamp

2
Bu sadece veri çerçevesinden çok daha fazla tasarruf sağlar. saveRDSBir veri çerçevesini adı olmadan kaydetmeye bakın (dhendrickson'un bir cevabı vardır).
PatrickT

91

Yalnızca tek bir nesneyi (veri çerçeveniz) kaydediyorsanız, kullanabilirsiniz saveRDS.
Kaydetmek:

saveRDS(foo, file="data.Rda")

Sonra şununla okuyun:

bar <- readRDS(file="data.Rda")

Arasındaki fark saveRDSve saveeski tek nesne olarak kaydedilebilir ve nesnenin adı onu yerleştirdikten sonra aynı olması zorunlu olmamasıdır.


1

Diyelim ki oluşturduğunuz ve "Data_output" adlı bir veri çerçeveniz var, aşağıdaki sözdizimini kullanarak aynı dizine aktarabilirsiniz.

write.csv (Data_output, "output.csv", row.names = F, alıntı = F)

Peter ve Ilja, UMCG, Hollanda'ya kredi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.