如何在 R 中转换 1970 年之前的日期?
How to convert dates prior to 1970 in R?
以下是我的数据框中的一列字符格式
DateOfBirth
1: 4/4/1967 12:00:00 AM
2: 4/4/1967 12:00:00 AM
3: 11/1/2001 12:00:00 AM
我用下面的一段代码转换成日期格式,这样我可以在后期计算年龄
library(lubridate)
df$dob<-format(as.Date(df$DateOfBirth,format="%m/%d/%Y %H:%M:%S"),format="%m-%d-%y")
df$dob<-mdy(df$dob)
但是,1970 年之前日期的输出结果如下
DateOfBirth dob
1: 4/4/1967 12:00:00 AM 2067-04-04
2: 4/4/1967 12:00:00 AM 2067-04-04
3: 11/1/2001 12:00:00 AM 2001-11-01
如何补救前两个观察结果,使 dob
为 1967-04-04
而不是 2067-04-04
您可以使用 anytime 包来解析它而不需要格式:
代码
df <- data.frame(DateOfBirth=c("4/4/1967 12:00:00 AM", "4/4/1967 12:00:00 AM",
"11/1/2001 12:00:00 AM"))
df$date <- anytime::anydate(df$DateOfBirth)
df
输出
R> df <- data.frame(DateOfBirth=c("4/4/1967 12:00:00 AM", "4/4/1967 12:00:00 AM",
+ "11/1/2001 12:00:00 AM"))
R> df$date <- anytime::anydate(df$DateOfBirth)
R> df
DateOfBirth date
1 4/4/1967 12:00:00 AM 1967-04-04
2 4/4/1967 12:00:00 AM 1967-04-04
3 11/1/2001 12:00:00 AM 2001-11-01
R>
以下是我的数据框中的一列字符格式
DateOfBirth
1: 4/4/1967 12:00:00 AM
2: 4/4/1967 12:00:00 AM
3: 11/1/2001 12:00:00 AM
我用下面的一段代码转换成日期格式,这样我可以在后期计算年龄
library(lubridate)
df$dob<-format(as.Date(df$DateOfBirth,format="%m/%d/%Y %H:%M:%S"),format="%m-%d-%y")
df$dob<-mdy(df$dob)
但是,1970 年之前日期的输出结果如下
DateOfBirth dob
1: 4/4/1967 12:00:00 AM 2067-04-04
2: 4/4/1967 12:00:00 AM 2067-04-04
3: 11/1/2001 12:00:00 AM 2001-11-01
如何补救前两个观察结果,使 dob
为 1967-04-04
而不是 2067-04-04
您可以使用 anytime 包来解析它而不需要格式:
代码
df <- data.frame(DateOfBirth=c("4/4/1967 12:00:00 AM", "4/4/1967 12:00:00 AM",
"11/1/2001 12:00:00 AM"))
df$date <- anytime::anydate(df$DateOfBirth)
df
输出
R> df <- data.frame(DateOfBirth=c("4/4/1967 12:00:00 AM", "4/4/1967 12:00:00 AM",
+ "11/1/2001 12:00:00 AM"))
R> df$date <- anytime::anydate(df$DateOfBirth)
R> df
DateOfBirth date
1 4/4/1967 12:00:00 AM 1967-04-04
2 4/4/1967 12:00:00 AM 1967-04-04
3 11/1/2001 12:00:00 AM 2001-11-01
R>