我有一个很大的数据文件,其中所有日期都已作为字符加载。我想将所有日期列更改为日期格式。大多数日期具有“%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", name(df)) 将获取所有日期列
df[ , grep("DATE", names(df))] <- as.Date(df[ , grep("DATE", names(df))], "%y%m%d")
Try:
df[, cols <- grep("^DATE", names(df))] <- lapply(df[, cols <- grep("^DATE", names(df))], as.Date, format = "%y%m%d")
Example:
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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)