【发布时间】:2022-06-28 13:17:32
【问题描述】:
我读入了一个 excel 文件,其中 1 列包含不同格式的日期:excel 格式(例如 43596)和文本(例如“01.01.2020”)。
要转换excel格式,可以使用as.Date(as.numeric(df$date), origin = "1899-12-30")
转换文本可以使用as.Date(df$date, format = "%d.%m.%Y")
这些适用于个人价值观,但是当我尝试 ifelse 时:
df$date <- ifelse(length(df$date)==5,
as.Date(as.numeric(df$date), origin = "1899-12-30"),
as.Date(df$date, format = "%d.%m.%Y"))
或for循环:
for (i in length(x)) {
if(nchar(x[i])==5) {
y[i] <- as.Date(as.numeric(x[i]), origin = "1899-12-30")
} else {x[i] <- as.Date(x[i], , format = "%d.%m.%Y"))}
} print(x)
它不起作用,因为:
“字符串不是标准的明确格式”
也许您可以建议一种更好的解决方案来转换/替换适当的不同日期格式?
【问题讨论】:
-
你能提供
dput(head(df))吗? -
你好@Waldi。 ```结构(列表(合同= c(231429、231437、231449、231459、231463、231466),日期= c(“43596”,“07.01.2020”,“01.01.2021”,“03.03.2020”, "44131", "40619")), row.names = c(NA, -6L), class= c("tbl_df", "tbl", "data.frame"))