我需要转换的fctr格式的栏道布,如4/11/64,在婚姻内置数据集到日期格式使用lubridate。我尝试过许多功能,如strptime、as_date等,但4/11/64改为2064年,这对1964年出生的人来说是不正确的。是否有自动将年份转换为19 to的函数?或者,在转换之前,我必须先把"19“写成字符格式?
发布于 2020-09-19 14:24:05
我认为你必须自己加上"19“,除非你想使用hydrostats::four.digit.year
hydrostats::four.digit.year(dmy("4/11/64"), year=1900)
(这个函数只有几行长,所以如果不想依赖于包,就可以复制它)
function (x, year = 1968) {
n <- as.numeric(strftime(x, format = "%y"))%%100
Y <- ifelse(n > year%%100, 1900 + n, 2000 + n)
return(Y)
}
否则,您将被POSIX标准所困。"%y"
是转换两(或一)位数年份和从?strptime
转换的标准标记。
“%Y”年无世纪(00-99)。在输入时,值00到68的前缀是20,69到99的前缀是19 --这是2018年POSIX标准规定的行为,但它也表示,“预计在未来版本中,从2位数的年份推断出的默认世纪将发生变化”。
标准本身是可用的这里。
如果未指明世纪,则幅度为69,99的数值应指1969年至1999年(含在内),而范围为00,68的数值应指2000年至2068 (含2000年)。
https://stackoverflow.com/questions/63969766
复制相似问题