gpt4 book ai didi

r - 如何在 r 中将错误(不存在)字符列排列为日期?(类似将字符列转换为 r 中的日期)

转载 作者:行者123 更新时间:2023-12-04 09:00:25 25 4
gpt4 key购买 nike

ymd("2011-11-31") 
All formats failed to parse. No formats found.[1] NA

2011-11 有 30 天而不是 31 天,所以 ymd 处于失败状态。
我的数据在这样的日期列中有一些错误的日期,我想学习优雅的处理方式。
是否有任何包或函数可以使数据像“2011-12-01”一样?

最佳答案

类似的答案在这里但也适用于滚动的月份和年份

library(lubridate)
d <- c("2011-11-31",'2011-13-04','2011-12-32')

parse_false_date <- function(d) {
x <- strcapture("(\\d{4})-(\\d{2})-(\\d{2})", d,
data.frame(y=integer(),m=integer(),d=integer()))
make_date(x$y)+months(x$m-1)+days(x$d-1)
}

parse_false_date(d)
#> [1] "2011-12-01" "2012-01-04" "2012-01-01"

关于r - 如何在 r 中将错误(不存在)字符列排列为日期?(类似将字符列转换为 r 中的日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63589650/

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