R의 as.Date 함수가 입력 한 연도를 현재 2020 년으로 변환하는 이유는 무엇입니까?
데이터 프레임에 날짜가 있고 as.Date ()를 사용하여 날짜로 변환하면 연도가 2020으로 변환됩니다. 파일에 2018 년까지만 데이터가 있기 때문에 실제로 유효하지 않습니다.
내가 지금까지 가지고있는 것 :
> fechadeinsc1[2]
[1] "2020-08-15"
> class(fechadeinsc1)
[1] "Date"
> fechainsc[2]
[1] "2017/99/99"
> class(fechainsc)
[1] "character"
보시다시피 fechadeinsc1은 날짜로 변환되었으며 fechainsc는 요소가 문자 인 원래 데이터 프레임입니다. "fechadeinsc1"은 같은 해를 주어야합니다. 그렇지 않습니까? 일과 달이 유효하지 않더라도.
다른 예 :
> fechadenac1[2]
[1] "2020-12-31"
> class(fechadenac1)
[1] "Date"
> fechanac[2]
[1] "12/31/2016"
> class(fechanac)
[1] "character"
다시 한 번 해가 바뀝니다.
내 코드 :
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"는 에콰도르에서 2016 년과 2017 년에 등록 된 신생아에 대한 정보가 포함 된 원본 데이터 프레임입니다. 원본 .csv 파일을 원하는 사람이 있으면 저에게 연락하십시오.
답변
1 tevemadar
strptime에서 참조 된을 기반으로 as.Date4 자리 연도에는 대문자 Y를 사용해야합니다.
%y
세기가없는 연도 (00-99). 입력시 00에서 68까지의 값 앞에 20이 추가되고 69에서 99에는 19가 추가됩니다. 이는 2004 및 2008 POSIX 표준에 지정된 동작이지만 '미래 버전에서는 기본 세기가 유추 될 것으로 예상됩니다. 2 자리 연도에서 변경됩니다 '.
%Y
세기가있는 해. [...]