gpt4 book ai didi

R - 格式化数据框中的日期 - 十进制和字符值的混合

转载 作者:行者123 更新时间:2023-12-05 02:57:48 25 4
gpt4 key购买 nike

我在数据框中有一个日期列。我已经使用 openxlsx 将此 df 读入 R。当我使用 typeof(df$date) 时,该列被“视为”字符向量。

该列包含多种格式的日期信息,我希望将其转换为一种格式。

#Example
date <- c("43469.494444444441", "12/31/2019 1:41 PM", "12/01/2019 16:00:00")

#What I want -updated
fixed <- c("2019-04-01", "2019-12-31", "2019-12-01")

我尝试了很多解决方法,包括 openxlsx::ConvertToDatelubridate::parse_date_timelubridate::date_decimal

openxlsx::ConvertToDate到目前为止效果最好,但它只会采用一种格式并为其他格式强制 NA

更新

我意识到我实际上将上述输出日期之一弄错了。值 43469.494444444441 应转换为 2019-04-01。

最佳答案

这是分两步执行此操作的一种方法。单独更改 Excel 日期,并以不同方式更改所有其他日期。如果您有更多格式的日期可以添加到 parse_date_time 中。

temp <- lubridate::parse_date_time(date, c('mdY IMp', 'mdY HMS'))
temp[is.na(temp)] <- as.Date(as.numeric(date[is.na(temp)]), origin = "1899-12-30")

temp
#[1] "2019-01-04 11:51:59 UTC" "2019-12-31 13:41:00 UTC" "2019-12-01 16:00:00 UTC"
as.Date(temp)
#[1] "2019-01-04" "2019-12-31" "2019-12-01"

关于R - 格式化数据框中的日期 - 十进制和字符值的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59558953/

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