Zrobiłem ramkę data.frame w R, która nie jest zbyt duża, ale jej zbudowanie zajmuje trochę czasu. Chciałbym zapisać go jako plik, który mogę potem ponownie otworzyć w R?
Zrobiłem ramkę data.frame w R, która nie jest zbyt duża, ale jej zbudowanie zajmuje trochę czasu. Chciałbym zapisać go jako plik, który mogę potem ponownie otworzyć w R?
Odpowiedzi:
Jest kilka sposobów. Jednym ze sposobów jest save()
zapisanie dokładnego obiektu. np. dla ramki danych foo
:
save(foo,file="data.Rda")
Następnie załaduj go za pomocą:
load("data.Rda")
Możesz także użyć write.table()
lub czegoś podobnego, aby zapisać tabelę w postaci zwykłego tekstu lub dput()
uzyskać kod R do odtworzenia tabeli.
dump()
nad save()
i write.table()
naddump()
save()
/ load()
będzie? Jeśli tak, to też warto wziąć to pod uwagę. Zwykle mam sekcję przetwarzania niektórych plików .csv i kiedy znajdę je tam, gdzie mi się podoba, wolę je zapisać, więc nie muszę ponownie uruchamiać tego kodu za każdym razem, gdy ponownie odwiedzam mój projekt. Dlatego ważne jest, aby wziąć pod uwagę zachowanie tej pracy / poprawek w strukturze.
dump()
zapisuje również strukturę. Zaletą write.table
jest to, że zapisuje tabele w sposób, który wiele programów może importować.
saveRDS
jak zapisać ramkę danych bez jej nazwy (dhendrickson ma na to odpowiedź).
Jeśli zapisujesz tylko jeden obiekt (ramkę danych), możesz również użyć saveRDS
.
Zapisać:
saveRDS(foo, file="data.Rda")
Następnie przeczytaj go za pomocą:
bar <- readRDS(file="data.Rda")
Różnica między saveRDS
i save
polega na tym, że w pierwszym przypadku można zapisać tylko jeden obiekt, a nazwa obiektu nie musi być taka sama po załadowaniu.
Powiedzmy, że masz utworzoną przez siebie ramkę danych o nazwie „Data_output”. Możesz ją po prostu wyeksportować do tego samego katalogu, używając następującej składni.
write.csv (Data_output, "output.csv", row.names = F, quote = F)
dump
i utworzone pliki byłybysource()
-ed, chociażhelp(dump)
strona mówi, żesave
jest „bezpieczniejsza”.