R'deki as.Date işlevi neden 2020 cari yılına girdiğim yılları dönüştürüyor?
Bir veri çerçevesinde bazı tarihlerim var ve bunları tarihlere dönüştürmek için as.Date () kullandığımda yıllar 2020'ye dönüşüyor, bu gerçekten geçerli değil çünkü dosya yalnızca 2018'e kadar verilere sahip.
Şimdiye kadar sahip olduğum şeyler:
> fechadeinsc1[2]
[1] "2020-08-15"
> class(fechadeinsc1)
[1] "Date"
> fechainsc[2]
[1] "2017/99/99"
> class(fechainsc)
[1] "character"
Gördüğünüz gibi, fechadeinsc1 bir tarihe dönüştürüldü ve fechainsc, elemanların karakter olduğu orijinal veri çerçevesidir. "fechadeinsc1" aynı yılı vermeli, değil mi? Günler ve aylar geçerli olmasa da.
Başka bir örnek :
> fechadenac1[2]
[1] "2020-12-31"
> class(fechadenac1)
[1] "Date"
> fechanac[2]
[1] "12/31/2016"
> class(fechanac)
[1] "character"
Yine yıl değişiyor.
Kodum :
fechanac <- dat$fecha_nac fechainsc <- dat$fecha_insc
fechadeinsc1 <- as.Date(fechainsc,tryFormats =c("%d/%m/%y","%m/%d/%y","%y","%d%m%y","%m%d%y"))
fechadenac1 <- as.Date(fechanac,tryFormats =c("%d/%m/%y","%m/%d/%y","%y","%d%m%y","%m%d%y"))
"dat", Ekvador'da 2016 ve 2017'de kaydedilen yenidoğanlarla ilgili bilgileri içeren orijinal veri çerçevesidir. Orijinal .csv dosyasını isteyen biri varsa lütfen benimle iletişime geçin.
Yanıtlar
Kaynak olarak strptime, as.Date4 basamaklı yıllar için büyük Y harfini kullanmalısınız:
%y
Yüzyıl olmadan yıl (00-99). Girişte, 00 ile 68 arasındaki değerler 20 ile 69 ile 99 arasında 19 ile başlar - bu, 2004 ve 2008 POSIX standartlarında belirtilen davranış, ancak aynı zamanda 'gelecekteki bir sürümde varsayılan yüzyılın çıkarsaması bekleniyor 2 basamaklı bir yıldan değişecek '.
%Y
Yüzyıl. [...]