2013-07-08 21 views
16

numaralı tarihe dönüştürün. Bu tarihleri ​​YYYYMMDD biçiminde bir Date sınıfına dönüştürmek istiyorum.yyyymmdd dizesini R

dates <- data.frame(Date = c("20130707", "20130706", "20130705", "20130704")) 

Denedim:

dates <- as.Date(dates, "%Y%m%d") 

Ve aşağıdaki hatayı alıyorum:

Error in as.Date.default(dates, "%Y%m%d") : 
    do not know how to convert 'dates' to class "Date" 

Ne bu formatı ayarlamak için doğru yolu olurdu? Tüm data.frame değil, Date sütunu sağlamanız gerekir.

cevap

13

R> as.Date(dates[["Date"]], "%Y%m%d") 
[1] "2013-07-07" "2013-07-06" "2013-07-05" "2013-07-04" 
+0

Ve biz ne istersek (<-') – d8aninja

+2

OP ile başlattık. Tarihler, R'de tire ile basılır. Eğer istemiyorsanız, kendi baskı yönteminizi (muhtemelen peşinde olduğunuz şeyi değil) yapabilir ya da bunları karaktere dönüştürebilirsiniz: format (myDates, "% Y% m) % D ") '. – GSee

+0

Aradığım şey bu - teşekkürler. – d8aninja

3

Klasik R:

> start_numeric <- as.Date('20170215', format = '%Y%m%d'); 
> start_numeric 
[1] "2017-02-15" 
> format(start_numeric, "%Y%m%d") 
[1] "20170215" 
0

karakter Ekstra dönüşüm benim için çalışıyor:

dates<-as.Date(dates,format="%Y%m%d") 
Error in as.Date.numeric(dates, format = "%Y%m%d") : 
    'origin' must be supplied 

Farklı hatası: Aşağıdaki hata oluştuğunda dönüşüm olmadan

dates<-as.Date(as.character(dates),format="%Y%m%d") 

ama bu mig ht yardım, POSIXct için de işe yarar, tarih ve saat yapıştırın,% Y% m% d% biçimlendirin H