R中的Excel日期转换问题

时间:2018-05-10 13:45:58

标签: r excel

从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" 

有什么建议吗?提前谢谢。

2 个答案:

答案 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")

Try it online!

答案 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").