将字符格式转换为r lubridate中的日期格式,前20年而不是19年

哇哇

我需要使用lubridate将dob列的fctr格式(例如4/11/64)转换为Marriage内置数据集中的日期格式。我尝试了很多函数,例如strptime,as_date等,但是4/11/64更改为2064年,这对于1964年出生的人来说是不正确的。是否有一个函数可以自动将年份转换为19xx?还是我必须先将字符格式的前导“ 19”放在字符格式之前?

本·博克

我认为您必须自己添加“ 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年(含)。

另请参阅:为什么用69的两位数年份的strptime在python中返回1969?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将日期转换为R中特定格式的字符

将 YEARQT 格式的字符转换为 R 中的季度“日期”

将季度/年格式转换为日期

将字符日期格式转换为R日期

将字符月份列转换为R中的年月格式

将日期格式(2018 年 10 月 12 日)转换为 R 格式的日期

将字符串转换为R语言的时间格式

将字符转换为日期格式

在XSLT 3.0中将字符串转换为星期几,月dd,年-年转换为日期格式yyyy-mm-dd时间

将日期从字符转换为可以在R中的时间序列分析中使用的日期格式

将字符格式的时间列转换为R中可操作的时间格式

将字符串格式转换为

如何将1970年之前的日期格式的字符串转换为Windows中的时间戳

如何将日,月,年转换为日期格式?

将年和月转换为日期格式

在R中,如何将特定格式的字符转换为日期?

将20100502形式的字符串转换为R中的日期格式

将文本字符串“ ABCYYYYMM”转换为R中的日期格式

将日期格式转换为Pandas中的字符串

R将包含日期的列名称转换为“月年”格式

如何将只有一年的日期转换为 R 中格式为“年-月-日”的日期

使用Lubridate将R中的字符列转换为日期

R- 如何将日期从英文格式(月-日-年)转换为另一种格式?

将周。年转换为年。月-R中的日期

将格式转换为R(大量数据)

R:以以下格式将字符转换为日期时间:2018-07-01 12

将字符串转换为数字日期格式时出现问题R

将非标准日期格式字符串(“April-20”)转换为日期对象 R

将GMT格式的字符串转换为datetime格式