r एक्सेल से आर की तिथियाँ, प्लेटफ़ॉर्म निर्भरता




excel date (2)

मैं gdata का उपयोग कर gdata फाइल आयात कर रहा हूँ मैं दिनांक को कनवर्ट करने के लिए as.Date का उपयोग करके दिनांक कॉलम परिवर्तित कर रहा हूं

के रूप में मैन्युअल के as.Date , दिनांक, तारीख मूल मंच पर निर्भर है, और इसलिए मैं निर्धारित कर रहा हूँ कि कौन सा मूल इसके अनुसार उपयोग करे

.origin <- ifelse(Sys.info()[['sysname']] == "Windows", "1899-12-30", "1904-01-01")
as.Date(myData$Date, origin=.origin)

हालांकि, मैं सोच रहा हूं कि मुझे उस मंच पर विचार करना चाहिए जहां फाइल पढ़ी जा रही है या प्लेटफ़ॉर्म जहां लिखा गया था ?

इसके लिए क्या कीमत है, मैं वर्तमान में कोड का परीक्षण नहीं कर रहा हूं, लिनक्स बॉक्स पर कोई उत्कृष्टता नहीं है, और origin="1904-01-01" का उपयोग करके सही तिथियां तैयार की जाती हैं

`` As.Date 'का हवाला देते हुए

  ## date given as number of days since 1900-01-01 (a date in 1989)
  as.Date(32768, origin = "1900-01-01")
  ## Excel is said to use 1900-01-01 as day 1 (Windows default) or
  ## 1904-01-01 as day 0 (Mac default), but this is complicated by Excel
  ## treating 1900 as a leap year.
  ## So for dates (post-1901) from Windows Excel
  as.Date(35981, origin = "1899-12-30") # 1998-07-05
  ## and Mac Excel
  as.Date(34519, origin = "1904-01-01") # 1998-07-05
  ## (these values come from http://support.microsoft.com/kb/214330)

आप (अत्यंत) नए एक्सेल पैकेज का प्रयास कर सकते हैं: https://github.com/hadley/exell यह POSIXct में तिथियों को एक्सेल करती है, इस आधार पर मूल रूप से चुनना है कि फ़ाइल Windows या Mac Excel द्वारा लिखी गई थी या नहीं।


हां, आपको यह विचार करना चाहिए कि फ़ाइल कहां लिखी गई थी। एक्सेल-विंडोज विन-लिखित तारीखों से मैक-लिखित तारीखों को भेद करने में सक्षम होता है, लेकिन आप सबूत मिल रहे हैं कि ये मैक-उत्पत्ति। एक्सएल फाइल हैं।

सबसे सुरक्षित तरीका एक्सेल के संस्करण के भीतर काम करना होगा जिस पर डेटा दर्ज किया गया था और एक डायलॉग बॉक्स लाने के लिए प्रारूप मेनू का उपयोग करना था, जिस पर आपने दिनांक और yyyy-mm-dd का एक कस्टम प्रारूप चुना है। फिर एक सीएसवी फ़ाइल के रूप में सहेजें और आप कॉलमलेस वेक्टर "तिथि" के साथ उचित स्तंभ स्थिति में आर में आयात करने में सक्षम होंगे। लेकिन ऐसा लगता है जैसे कि यह एक विकल्प उपलब्ध नहीं है।

मुझे लगता है कि यह आपके लिए लिनक्स बॉक्स पर लागू नहीं होता है, इसलिए यह सिर्फ एक मैक-व्हाइन है: gdata-package अस्वीकरण चेतावनियां देता है और फिर एक्स 3.03 पर XLSX समर्थन फ़ाइलों को सामान्य पर्ल 5.8 स्थापना के साथ स्थापित करने में विफल रहता है। '/ opt / स्थानीय / bin / पर्ल'। यह 'gdata :: findPerl' के बावजूद सफलतापूर्वक इसे खोजने में सक्षम है

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

एक्सेल के मैक संस्करण के साथ बनाई गई रिक्त एक्सएलएस फ़ाइल के अंत के पास, एक टेक्स्ट एडिटर की तलाश में, जो मैंने देखा:

Worksheets˛ˇˇˇˇˇ ¿F$Microsoft Excel 97 - 2004 Worksheet˛ˇˇˇ8FIBExcel.Sheet.8˛ˇ
‡ÖüÚ˘Oh´ë+'≥Ÿ0îHPhħ
∞ºƒ'David WinsemiusDavid WinsemiusMicrosoft Macintosh Excel@ê˚á!Ë+Œ@ê'å-Ë+ŒG»˛ˇˇˇPICT¿Kġ

अन्य अंतर यह था कि विंडोज़ संस्करण ने वही तरीके का निरीक्षण किया था जिस प्रकार "एक्सेल 2003 वर्कशीट" वर्कशीट के रूप में था, जबकि मैक संस्करण के लिए "एक्सेल 97 - 2004" था। तो हो सकता है कि आप "मैकिन्टोश" के स्कैनिंग के दौरान पढ़ने या प्रकाशित होने पर आरम्भ हो सकने वाली सभी त्रुटियों को दरकिनार करने में आर को सशक्त कर सकते हैं। हो सकता है कि लिनक्स-आर ऐसी चीज़ के प्रति अधिक प्रतिरोधी है?

Error: invalid multibyte string at '<ff>'

मुझे grep से चेतावनियां भी मिलीं, जो सुझाती हैं कि मैं कुछ तारों में "देख" नहीं पा पाऊंगा:

Warning message:
In grep("Macintosh", lin) : input string 1 is invalid in this locale

आप xls2csv.pl में पर्ल कोड से कुछ और मजबूत कोड को हाईजैक करने में सक्षम हो सकते हैं जो कि gdata पैकेज का हिस्सा है।





xls