首页 > 解决方案 > 在 R 中将 ddmmyy-xxxx 转换为日期

问题描述

我有一个日期框,其中有一列代表日期的数字。所以 110190-1111 是 ddmmyy-xxxx,其中 x 无关紧要。隐含的世纪是 1900 年。

df <- c("110190-1111", "220391-1111", "241287-1111")

我想把它转换成。

c("1990-01-11", "1991-03-22", "1987-12-24)

我已经删除了最后 4 位数字和下面的“-”。

ID <- c("110190-1111", "220391-1111", "241287-1111")
df <- data.frame(ID)
df <- df %>% mutate(date=gsub("-.*", "", ID))

我试过摆弄 as.Date 函数但没有运气。有什么建议么?谢谢。

标签: r

解决方案


as.Date 最后忽略垃圾,所以

df %>% mutate(Date = as.Date(ID, "%d%m%y"))

给予:

           ID       Date
1 110190-1111 1990-01-11
2 220391-1111 1991-03-22
3 241287-1111 1987-12-24

或仅使用基础 R:

transform(df, Date = as.Date(ID, "%d%m%y"))

推荐阅读