2017-09-11 16 views
5

मैं ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt से जलवायु स्टेशन जानकारी पढ़ने की कोशिश कर रहा हूं। हालांकि, बाद से पहली पंक्ति पूरी तरह से तैयार नहीं हुआ है (पिछले दो कॉलम याद कर रहे हैं) और 5 वीं स्तंभ रिक्त स्थान होता है, मैं के साथ पढ़ने को पूरा करने में असमर्थ हूँ:ईओएफ के साथ फ्रेड txt के मुद्दे को हल करने के लिए कैसे?

Expected sep (' ') but new line, EOF (or other non printing character) ends 
field 5 when detecting types from point 0: AGE00135039 35.7297 0.6500 
50.0 ORAN-HOPITAL MILITAIRE  
:

fread('ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt',sep=) 

यह त्रुटि संदेश देता है

इस txt फ़ाइल को पढ़ने पर सही ढंग से फ़्रेड कैसे लागू करें? धन्यवाद!

+0

ठीक है, अगर मैं इसे सही तरीके से पढ़ रहा हूं, तो इस प्रकार का निश्चित-चौड़ाई प्रारूप टोडो सूची पर है: https://github.com/Rdatatable/data.table/issues/1345 – Frank

+1

आप इसे पढ़ने का प्रयास कर सकते हैं केवल एक कॉलम और फिर इसे सभी 8 या तो चर में तोड़ दें, लेकिन यह थोड़ा दर्दनाक होगा – ira

+0

धन्यवाद @ फ्रैंक, जो मदद करता है और मैं एक नज़र डालेगा। – DrX

उत्तर

0

आप यूटिल पैकेज से read.fwf फ़ंक्शन क्यों नहीं देखते हैं? कॉलम चौड़ाई readme.txt फ़ाइल में दी जाती है (अनुभाग IV देखें)।

IV. FORMAT OF "ghcnd-stations.txt" 

------------------------------ 
Variable Columns Type 
------------------------------ 
ID   1-11 Character 
LATITUDE  13-20 Real 
LONGITUDE 22-30 Real 
ELEVATION 32-37 Real 
STATE  39-40 Character 
NAME   42-71 Character 
GSN FLAG  73-75 Character 
HCN/CRN FLAG 77-79 Character 
WMO ID  81-85 Character 
------------------------------ 

हालांकि, निम्नलिखित का प्रयास एक त्रुटि देता है:

data <- read.fwf("ghcnd-stations.txt", widths = c(11,9,10,7,3,31,4,4,6)) 
Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec, : 
    line 25383 did not have 7 elements 

लाइन 25,383 का निरीक्षण त्रुटि का कारण पता चलता है।

> x <- readLines("ghcnd-stations.txt", 25383) 
> tail(x, 1) 
[1] "CA002100627 60.8167 -137.7333 846.0 YT HAINES APPS #4        " 

तो, comment.char तर्क शायद सिर्फ अशक्त सहित, डिफ़ॉल्ट (#) कुछ और करने के लिए से, मान परिवर्तित करके इस दरकिनार।

data <- read.fwf("ghcnd-stations.txt", widths = c(11,9,10,7,3,31,4,4,6), comment.char="") 

इसमें केवल 20 सेकंड लगते हैं। fread के लिए कोई वास्तविक आवश्यकता नहीं है।

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