2015-03-24 9 views
12

में डेटाटाइम स्वरूपण मेरे पास यूआरएफ नामक सीआरएएन पर एक पैकेज है, जो data.frame (डेटा उद्धरण में उपयोग के लिए) का हैश बनाता है। मेरे पास डेटाटाइम के स्वरूपण से संबंधित पैकेज में कुछ परीक्षण हैं (मैं testthat का उपयोग कर रहा हूँ)। वे आर (3.1.3) के वर्तमान संस्करण पर सही ढंग से काम करते हैं, लेकिन एक बार मैंने CRAN, one of these tests fail on "r-oldrel-windows" (3.0.3) पर सबमिट किया।R3.0.3 और R3.1.3

मैं निम्नलिखित कोड है, जो (3.1.3 से) यहाँ सही उत्पादन है आर के दो संस्करणों में अलग अलग परिणाम प्राप्त होते हैं करने के लिए अंतर नीचे ट्रैक करने के बाद:

x = strptime("2014-08-22T16:51:05Z", "%FT%H:%M:%OSZ", tz="UTC") 
x 
# [1] "2014-08-22 16:51:05 UTC" 
strftime(x, "%F") 
# [1] "2014-08-22" 

और यहाँ उत्पादन से है 3.0.3:

x = strptime("2014-08-22T16:51:05Z", "%FT%H:%M:%OSZ", tz="UTC") 
x 
# [1] "2014-08-22 16:51:05 UTC" 
strftime(x, "%F") 
# [1] "" 

आप देख सकते हैं, strftime के उत्पादन में एक खाली चरित्र स्ट्रिंग के बजाय एक आईएसओ 8601 स्वरूपित तारीख है। किसी भी विचार में इन दो संस्करणों के बीच परिवर्तन क्या था? और मैं इसे कैसे ठीक कर सकता हूं? या, मैं सीआरएएन पर परीक्षण विफल होने से कैसे बच सकता हूं?

उत्तर

2

यह संभव है कि% F आर के पुराने संस्करणों में कोई विकल्प नहीं था। इसलिए बेस कोड स्ट्रिंग को अनदेखा कर रहा है ताकि यह खाली स्ट्रिंग के रूप में स्वरूपित हो। मैंने वर्तमान सहायता में नहीं एक पत्र का उपयोग करने की कोशिश की और यह उस पत्र के साथ एक स्ट्रिंग देता है जो एक तारीख नहीं है।

थॉमस, testthat और skip_on_CRAN कार्यक्षमता में skip() फ़ंक्शन है।

  1. मदद

    पर
    ?testthat::skip_on_cran 
    
  2. wbeasley एक नजर डालें some test code जो आपकी सहायता कर सकें है। (25595487 में रैप्स्टर के इस जवाब में उनकी सहायक टिप्पणियां देखें)। आप देखेंगे कि वह टेस्टथैट फ़ंक्शंस ब्रैकेट के अंदर इस स्किप कमांड को कैसे रखता है। यह नीचे टीका:

    library(testthat)   
    
    testthat("example"),{ 
        testthat::skip_on_cran() 
        # test code below 
        x <-2 
        expect_equal(x,2) 
    }) 
    
  3. यह विंडोज के साथ एक ओएस बात हो सकती है। कुछ और खुदाई करने से यह पता चला - आर 3.0.2 का वर्णन इस पर एक नज़र डालें। http://www.inside-r.org/r-doc/base/strftime

    डॉक्स विंडोज़ में कुछ% झंडे के साथ कुछ मुद्दों की चेतावनी देते हैं। का हवाला देते हुए (मेरे बोल्ड):

इसके अलावा मौजूदा मानकों में परिभाषित किया गया है, लेकिन कम व्यापक रूप से लागू (जैसे नहीं विंडोज पर उत्पादन के लिए) कर रहे हैं

% सी सदी (00--99): वर्ष के पूर्णांक भाग 100

से विभाजित ...

% एफ समतुल्य% Y-% m-% d (आईएसओ 8601 दिनांक स्वरूप)।

...

आशा इस मदद करता है!

+0

यूप, वह था। '% F' को पहले Windows पर आउटपुट प्रारूप के रूप में समर्थित नहीं किया गया था। धन्यवाद! – Thomas

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