gpt4 book ai didi

r - R 中的日期格式

转载 作者:行者123 更新时间:2023-12-02 03:35:51 26 4
gpt4 key购买 nike

我在数据框中有一个 chr 格式的日期列,如下所示:

chr [1:1944] "20-Sep-90" "24-Feb-05" "16-Aug-65" "19-Nov-56" "28-Nov-59" "19-Apr-86"

我想使用以下方法转换为日期:

strptime(x=data$dob, '%d-%b-%y')

但是我在结果中得到了几个 future 的日期,例如

[1] "1990-09-20" "2005-02-24" "2065-08-16" "2056-11-19" "2059-11-28" "1986-04-19" "2041-04-01" "1971-01-23"[9] "1995-11-25" "1995-11-25" "2009-02-11" "2002-09-19" "1977-10-06" "1998-03-22" "2050-03-12" "2030-03-26"

有没有办法确保我返回以正确世纪开始的日期?

谢谢

最佳答案

看起来(从 ?strptime%y 的文档来看)没有任何明显的选项可以更改从 2 位数字年份推断的默认世纪。

由于 strptime() 返回的对象具有类 POSIXlt,因此从今天之后(或任何其他日期之后)的任何日期减去 100 年是一件非常简单的事情您想要使用的截止日期)。

# Use strptime() to create object of class POSIXlt
dd <- c("20-Sep-90", "24-Feb-05", "16-Aug-65",
"19-Nov-56", "28-Nov-59", "19-Apr-86")
DD <- strptime(dd, '%d-%b-%y')

# Subtract 100 years from any date after today
DD$year <- ifelse(DD > Sys.time(), DD$year-100, DD$year)
DD
[1] "1990-09-20" "2005-02-24" "1965-08-16" "1956-11-19" "1959-11-28" "1986-04-19"

关于r - R 中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com