从R中绘制Excel数据并转换为R中的日期时遇到问题。我有一个“time_period”列,该Excel以Excel数据日期格式从Excel中提取,带有5位数字(例如41640)。
> head(all$time_period)
[1] "41640" "41671" "41699" "41730" "41760" "41791"
这些数字最初是chr格式,因此我将它们改为数字类型:
all[,3] <- lapply(all[,3], function(x) as.numeric(as.character(x)))
一旦完成,我运行以下格式化日期:
all$time_period <-format(as.Date(all$time_period, "1899-12-30"), "%Y-%m-%d")
但是,一旦完成此操作,time_period列就是所有相同的日期(可能是列中的第一个日期)。
> head(all$time_period)
[1] "2014-01-01" "2014-01-01" "2014-01-01" "2014-01-01" "2014-01-01" "2014-01-01"
有什么建议吗?提前谢谢。
答案 0 :(得分:2)
您不需要lapply
带矢量,lapply
代表列表。以下作品:
x <- c("41640","41671","41699","41730","41760","41791")
x <- as.numeric(as.character(x))
format(as.Date(x, "1899-12-30"), "%Y-%m-%d")
答案 1 :(得分:1)
我相信这一行解决了你的问题,你不需要格式化它,因为默认的as.Date函数是&#34;%Y-%m-%d&#34;。
time_period = c("41640", "41671", "41699", "41730", "41760", "41791")
as.Date(as.numeric(time_period), origin = "1899-12-30").