2015-06-05 9 views
5

यह सबसे सहज लगता है कि .rdata फ़ाइलों को लोड करने के लिए तेज़ फ़ाइल प्रारूप हो सकता है, लेकिन जब कुछ स्टैक पोस्ट स्कैन करते हैं तो ऐसा लगता है कि .csv या अन्य प्रारूपों के लिए लोड समय बढ़ाने पर अधिक ध्यान दिया गया है। क्या कोई निश्चित उत्तर है?आर प्रारूप में पढ़ने वाले फ़ाइल प्रारूप क्या हैं?

+0

के रूप में यह एक बहुत ही मुश्किल है है सही जवाब देने के लिए सवाल। आपको किसी दिए गए फ़ाइल-रीडिंग फ़ंक्शन को संकलित और अनुकूलित सी- या फोरट्रान कोड में परिवर्तित करने पर विचार करना होगा, उदाहरण के लिए। इसके अतिरिक्त, चूंकि आपके पास आम तौर पर इनपुट प्रारूप का विकल्प नहीं है जब तक कि आपने पहली बार आर ** में फ़ाइलों को जेनरेट नहीं किया है, मुझे यकीन नहीं है कि उत्तर वास्तव में मायने रखता है! –

उत्तर

6

नहीं एक निश्चित जवाब है, लेकिन नीचे बार यह एक ही dataframe utils::read.delim(), readr::read_tsv(), data.table::fread() के साथ एक .tab फ़ाइल के रूप में में पढ़ सकते हैं और लोड करने के लिए ले लिया हैं एक द्विआधारी .RData फ़ाइल system.time() समारोह का उपयोग कर समय समाप्त हो गया है:

.tab साथ utils::read.delim

system.time(
    read.delim("file.tab") 
) 
# user system elapsed 
# 52.279 0.146 52.465 

readr::read_tsv

साथ

साथ .tabdata.table::fread

@Roman अनुरोध एक ही ~ 500MB फ़ाइल एक blistering 3 सेकंड में भरा हुआ है पर:

system.time(
    data.table::fread("file.tab") 
) 
# Read 49739 rows and 3005 (of 3005) columns from 0.400 GB file in 00:00:04 
# user system elapsed 
# 3.078 0.092 3.172 

.RData ही dataframe

system.time(
    load("file.RData") 
) 
# user system elapsed 
# 2.181 0.028 2.210 

की बाइनरी फ़ाइल स्पष्ट रूप से निश्चित नहीं (नमूना आकार = 1!) लेकिन मेरे मामले में 500 एमबी डेटा फ्रेम के साथ:

  1. बाइनरी .RData तेज है
  2. data.frame::fread() एक करीबी दूसरा
  3. readr::read_tsv परिमाण धीमी का आदेश
  4. utils::read.x धीमी और केवल आधा के रूप में तेजी से readr
+1

मुझे आश्चर्य है कि कैसे 'फ्रेड' इसे संभालेगा? इसे जाने की देखभाल? –

+0

यह इसे बहुत तेजी से संभाला @ RomanLuštrik – Phil

+0

@ फिल मुझे यकीन है कि 'colClasses' निर्दिष्ट करने से tsv फ़ाइलों के पढ़ने का समय बेहतर होगा। यह तुलना शामिल करना सार्थक हो सकता है। – nrussell

संबंधित मुद्दे