วิธีที่ดีที่สุดในการเก็บข้อมูลเพื่อการวิเคราะห์ทางสถิติใน R [ปิด]


12

ฉันใช้ไฟล์ข้อความเพื่อจัดเก็บข้อมูลของฉันสำหรับ R โดยไม่มีปัญหามาระยะหนึ่งแล้ว แต่สำหรับโครงการเมื่อเร็ว ๆ นี้ขนาดของไฟล์จะใหญ่เกินไปสำหรับไฟล์ข้อความแบบดิบที่จะจัดการ ทางเลือกง่ายๆที่ดีที่สุดคืออะไร


5
ไฟล์ข้อความมีขนาดใหญ่เกินไป? คุณกลัวความซื่อสัตย์หรือไม่? ไม่สามารถเปิดได้ในซอฟต์แวร์อื่น ๆ ใช่ไหม โหลดช้าเกินไปหรือไม่ ใหญ่เกินไปสำหรับฮาร์ดไดรฟ์ของคุณ (แล็ปท็อปใช่ไหม)?
งานกาล่า

3
+1 การจัดการข้อมูลเมื่อโครงการเติบโตเป็นปัญหาสากลในการวิเคราะห์ข้อมูล (และแทบจะไม่เจาะจงRเลย) ข้อกังวลพื้นฐานคือความสมบูรณ์ของข้อมูลมากกว่าขนาดไฟล์: การเสนอรูปแบบการบีบอัดบางรูปแบบเป็นการบดบังสิ่งนี้แทนที่จะแก้ไข
whuber

เหนือขนาดที่กำหนด txt ดูเหมือนจะไม่ทำงาน ฉันสามารถเพิ่มข้อมูลพิเศษลงในไฟล์ txt และโหลดลงใน R แต่ข้อมูลเพิ่มเติมไม่ได้อยู่ในอาร์ (Btw ข้อมูลค่อนข้างสมบูรณ์ดังนั้นในขณะที่การบีบอัดอาจช่วยได้นิดหน่อย สงสัยว่าโครงการของฉันจะโตขึ้นฉันจะจบลงด้วยปัญหาเดียวกันอีกครั้ง)
Toy Molto

คุณต้องบอกเราเพิ่มเติมเกี่ยวกับข้อมูลของคุณไม่มีสิ่งเช่น "วิธีที่ดีที่สุดในการจัดเรียงข้อมูล"
zx8754

คุณหมายถึงว่าread.tableหรือread.csvล้มเหลวอย่างเงียบ ๆ ? คุณแน่ใจหรือไม่ว่าคุณไม่มีไฟล์หลายไฟล์วางอยู่รอบ ๆ และมีข้อผิดพลาดในการเขียนโค้ด (พา ธ ผิดชื่อไฟล์ผิด ฯลฯ ) เพียงเพื่อแก้ไขความคิดคุณอาจต้องการให้เราทราบถึงจำนวนตัวแปรและจำนวนระเบียนที่คุณเกี่ยวข้องโดยประมาณ
งานกาล่า

คำตอบ:


10

วิธีการวิจัยมาตรฐานคือการใช้และsave loadหากคุณรันsaveบน data frame หลังจากนำเข้าและเพิ่มความคิดเห็นคุณสามารถระบุcompress=TRUEและคุณจะประหลาดใจกับการบีบอัดและloadเวลาที่รวดเร็ว วิธีนี้ใช้งานได้ดีโดยเฉพาะถ้าขนาดวัตถุน้อยกว่า 400MB มิฉะนั้นลองดูคำแนะนำด้านบนหรือffแพ็คเกจอันทรงพลังใน R

Hmiscแพคเกจมีห่อเล็ก ๆ น้อย ๆSaveและLoadจะทำให้เจ็บปวดข้างต้นมากขึ้น:

mydata <- csv.get(...)  # Hmisc package, has several options
Save(mydata)   # writes mydata.rda to current working directory
....
Load(mydata)   # reads mydata.rda and creates mydata data frame

9

ดูฐานข้อมูล SQLite3 แต่ละฐานข้อมูลเป็นไฟล์ดังนั้นจึงไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์ฐานข้อมูล

วิธีสร้างฐานข้อมูล:

$ sqlite3 my_db.db3
> CREATE TABLE my_table ( col1 TEXT );

สำหรับใช้กับ R, https://gist.github.com/lynaghk/1062939


+1 การใช้ฐานข้อมูลจริงเป็นขั้นตอนใหญ่ในทิศทางที่ถูกต้อง
whuber

นี่เป็นเครื่องมือที่เหมาะสมหรือไม่ cran.r-project.org/web/packages/RSQLite/index.html
EngrStudent

ขอบคุณฉันจะลองเส้นทางนี้ ฉันดู MySQL ด้วย แต่ดูเหมือนว่าจะเป็นมากกว่าที่ฉันต้องการ
Toy Molto

4

มีตัวเลือกทั่วไปจำนวนมาก

  • คุณสามารถบีบอัดข้อความ
  • คุณสามารถไปที่ไบนารีบนข้อความไม่ใช่เขียนใน ascii

การบีบอัดที่ยอดเยี่ยมขึ้นอยู่กับข้อมูล

การเดาของฉัน (และคุณไม่ได้ระบุดังนั้นฉันต้องเดา) คือคุณต้องการเก็บข้อมูลเหมือนสเปรดชีตในสิ่งอื่นนอกเหนือจาก csv (คั่นด้วยจุลภาค)

หนึ่งในรูปแบบที่ฉันชอบ (ฉันชอบ MatLab) คือ hdf

นี่คือข้อมูลที่เกี่ยวข้องกับ R เกี่ยวกับ HDF:

มันเป็นรูปแบบการจัดเก็บข้อมูลซูเปอร์คอมพิวเตอร์ที่มีความหนาแน่นสูง สามารถรวดเร็วและมีประสิทธิภาพ นอกจากนี้ยังมีความหนาแน่นมากกว่าข้อความซิป


3

ฟังก์ชั่นการอ่านไฟล์มาตรฐานใน R ตอนนี้จะอ่านไฟล์ gzipped โดยอัตโนมัติ ดังนั้นเพียงแค่เรียกใช้การบีบอัด gzip อย่างง่าย ๆ กับข้อมูลของคุณและอ่านเช่นเคยราวกับว่าเป็นข้อความธรรมดา

read.table('myfile.gz')

เรียบร้อย! ผมไม่ทราบว่า. ขอบคุณ.
EngrStudent
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.