ฉันสร้าง data.frame ใน R ที่ไม่ใหญ่มาก แต่ใช้เวลาค่อนข้างนานในการสร้าง ฉันต้องการบันทึกเป็นไฟล์ซึ่งสามารถเปิดได้มากกว่าใน R อีกครั้ง?
ฉันสร้าง data.frame ใน R ที่ไม่ใหญ่มาก แต่ใช้เวลาค่อนข้างนานในการสร้าง ฉันต้องการบันทึกเป็นไฟล์ซึ่งสามารถเปิดได้มากกว่าใน R อีกครั้ง?
คำตอบ:
มีหลายวิธี วิธีหนึ่งคือการใช้save()เพื่อบันทึกวัตถุที่แน่นอน เช่นสำหรับ data frame foo:
save(foo,file="data.Rda")
จากนั้นโหลดด้วย:
load("data.Rda")
คุณสามารถใช้write.table()หรืออะไรทำนองนั้นเพื่อบันทึกตารางเป็นข้อความธรรมดาหรือdput()รับรหัส R เพื่อสร้างตาราง
dump()มากกว่าsave()และwrite.table()มากกว่าdump()
save()/ load()จะ? ถ้าเป็นเช่นนั้นก็เป็นสิ่งที่ต้องคำนึงถึงเช่นกัน ฉันมักจะมีส่วนของการประมวลผลไฟล์. csv บางส่วนและเมื่อฉันได้ไฟล์เหล่านั้นในตำแหน่งที่ฉันชอบฉันชอบที่จะบันทึกไว้ดังนั้นฉันจึงไม่จำเป็นต้องเรียกใช้รหัสนั้นซ้ำทุกครั้งที่ฉันเยี่ยมชมโครงการของฉันอีกครั้ง ดังนั้นการรักษางาน / ปรับแต่งโครงสร้างนั้นเป็นสิ่งสำคัญที่ต้องพิจารณา
dump()ยังช่วยประหยัดโครงสร้าง สิ่งที่ดีเกี่ยวกับwrite.tableมันคือการเขียนตารางในหลาย ๆ ทางที่ซอฟต์แวร์สามารถนำเข้า
saveRDSการบันทึก dataframe ที่ไม่มีชื่อ (dhendrickson มีคำตอบสำหรับสิ่งนั้น)
หากคุณเป็นเพียงการประหยัดวัตถุเดียว (กรอบข้อมูลของคุณ) saveRDSคุณยังสามารถใช้
เพื่อบันทึก:
saveRDS(foo, file="data.Rda")
จากนั้นอ่านด้วย:
bar <- readRDS(file="data.Rda")
ความแตกต่างระหว่างsaveRDSและsaveคือในอดีตวัตถุเดียวเท่านั้นที่สามารถบันทึกและชื่อของวัตถุจะไม่ถูกบังคับให้เหมือนกันหลังจากที่คุณโหลด
ให้เราบอกว่าคุณมีกรอบข้อมูลที่คุณสร้างขึ้นและตั้งชื่อว่า "Data_output" คุณสามารถส่งออกไปยังไดเรกทอรีเดียวกันโดยใช้ไวยากรณ์ต่อไปนี้
write.csv (Data_output, "output.csv", row.names = F, อัญประกาศ = F)
dumpและไฟล์ที่สร้างขึ้นจะเป็นsource()-ed แม้ว่าhelp(dump)หน้าระบุว่าsave"ปลอดภัย"