Tôi đã tạo một data.frame trong R không lớn lắm, nhưng phải mất khá nhiều thời gian để xây dựng. Tôi có thể lưu nó dưới dạng một tệp mà tôi có thể mở lại trong R không?
Tôi đã tạo một data.frame trong R không lớn lắm, nhưng phải mất khá nhiều thời gian để xây dựng. Tôi có thể lưu nó dưới dạng một tệp mà tôi có thể mở lại trong R không?
Câu trả lời:
Có một số cách. Một cách là sử dụng save()
để lưu đối tượng chính xác. ví dụ cho khung dữ liệu foo
:
save(foo,file="data.Rda")
Sau đó tải nó với:
load("data.Rda")
Bạn cũng có thể sử dụng write.table()
hoặc một cái gì đó tương tự để lưu bảng dưới dạng văn bản thuần túy hoặc dput()
để lấy mã R để tạo lại bảng.
dump()
hơn save()
và write.table()
hơndump()
save()
/ load()
sẽ? Nếu vậy, đó là một cái gì đó để xem xét là tốt. Tôi thường có một phần xử lý một số tệp .csv và một khi tôi nhận được chúng ở nơi tôi thích, tôi muốn lưu chúng để tôi không phải chạy lại mã đó mỗi khi tôi truy cập lại dự án của mình. Vì vậy, bảo tồn công việc / tinh chỉnh cho cấu trúc là điều quan trọng cần xem xét.
dump()
cũng tiết kiệm cấu trúc. Điều thú vị write.table
là nó viết các bảng theo cách mà nhiều phần mềm có thể nhập.
saveRDS
để lưu một khung dữ liệu mà không có tên của nó (dhendrickson có câu trả lời về điều đó).
Nếu bạn chỉ lưu một đối tượng (khung dữ liệu của bạn), bạn cũng có thể sử dụng saveRDS
.
Để tiết kiệm:
saveRDS(foo, file="data.Rda")
Sau đó đọc nó với:
bar <- readRDS(file="data.Rda")
Sự khác biệt giữa saveRDS
và save
là trước đây chỉ có một đối tượng có thể được lưu và tên của đối tượng không bị buộc phải giống nhau sau khi bạn tải nó.
Giả sử bạn có một khung dữ liệu bạn đã tạo và đặt tên là "DataDefput", bạn chỉ cần xuất nó vào cùng thư mục bằng cách sử dụng cú pháp sau.
write.csv (DataDefput, "output.csv", row.names = F, quote = F)
dump
và các tệp được tạo sẽ đượcsource()
-ed, mặc dùhelp(dump)
trang nóisave
là "an toàn hơn".