gpt4 book ai didi

r - 将 R 数据框中的多列转换为日期格式

转载 作者:行者123 更新时间:2023-12-04 23:21:58 30 4
gpt4 key购买 nike

我有一个大型数据文件,其中所有日期都已作为字符加载。我想将所有日期列更改为日期格式。大多数日期采用“%y%m%d”格式,有些采用“%Y%m%d”格式。有 25 列日期,因此单独更改每一列是低效的。

我可以

df$DATE1 <- as.Date(df$DATE1, format ="%y%m%d")
df$DATE2 <- as.Date(df$DATE2, format ="%y%m%d")

等等,但非常糟糕的编码。

我尝试了以下代码,但不起作用。这假设所有日期的格式都是“%y%m%d”。使用 grep("DATE", names(df)) 将获得所有日期列
df[ , grep("DATE", names(df))] <- as.Date(df[ , grep("DATE", names(df))], "%y%m%d")

最佳答案

尝试:

df[, cols <- grep("^DATE", names(df))] <- lapply(df[, cols <- grep("^DATE", names(df))], as.Date, format = "%y%m%d")

例子:
df <- data.frame(DATE1 = c('910812', '900928'), DATE2 = c('890813', '890910'))
# Apply the above and you get:
# > df
# DATE1 DATE2
# 1 1991-08-12 1989-08-13
# 2 1990-09-28 1989-09-10
# > class(df[, 1])
# [1] "Date"

关于r - 将 R 数据框中的多列转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22772668/

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