2013-03-22 16 views
13

मैं इस प्रकार एक तिथि में स्ट्रिंग "2013-Jan-14" कन्वर्ट करने के लिए कोशिश कर रहा हूँ से परिवर्तित:as.Date एनए लौटने जबकि 'ddmmmyyyy'

sdate1 <- "2013-JAN-14" 
ddate1 <- as.Date(sdate1,format="%Y-%b-%d") 
ddate1 

लेकिन मैं मिलता है:

[1] NA 

मैं क्या गलत कर रहा हूँ? क्या मुझे इस उद्देश्य के लिए एक पैकेज स्थापित करना चाहिए (मैंने chron इंस्टॉल करने का प्रयास किया)।

उत्तर

21

मेरे लिए काम करता है। आपके लिए यह कारण आपके लिए संभवतः आपके सिस्टम लोकेल के साथ नहीं करना है।

## This will give NA(s) in some locales; setting the C locale 
## as in the commented lines will overcome this on most systems. 
## lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C") 
x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960") 
z <- as.Date(x, "%d%b%Y") 
## Sys.setlocale("LC_TIME", lct) 

वर्थ एक कोशिश:

?as.Date निम्नलिखित क्या कहना है।

+3

मुझे आज भी इसी तरह की एनए समस्या का सामना करना पड़ा और जब मैं अपनी सीएसवी फ़ाइल पर वापस गया, तो मुझे पता चला कि दिनांक सेल का स्वरूप दिनांक मोड (एक्सेल में) के बजाय 'कस्टम' मोड में था। इसे आज तक बदलने के बाद, 'as.Date' कमांड ठीक काम करता था। मुझे पता है कि आपकी समस्या हल हो गई है, लेकिन मैं बस इस समस्या के लिए एक और संभावित स्थिति पेश करना चाहता था। – LearneR

4

नीचे मेरा समाधान प्रत्येक समस्या के लिए काम नहीं कर सकता है जिसके परिणामस्वरूप .डेट() एनए की वापसी कर रहा है, लेकिन यह कुछ के लिए काम करता है, अर्थात्, दिनांक परिवर्तक कारक प्रारूप में पढ़ा जाता है।

सीधे शब्दों में stringsAsFactors साथ .csv में पढ़ा = FALSE

data <- read.csv("data.csv", stringsAsFactors = FALSE) 
data$date <- as.Date(data$date) 

कोशिश कर (और अनुत्तीर्ण) मेरी सिस्टम स्थान के साथ एनए समस्या को हल करने के बाद, इस समाधान मेरे लिए काम किया।

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