【发布时间】:2021-06-07 20:00:25
【问题描述】:
我正在尝试将自定义函数应用于 Excel 导入日期列。
我应用下一个函数:
library(janitor)
fun_excel_date <- function(x){
if(is.numeric(x)){
excel_numeric_to_date(as.numeric(
as.character(x)
), date_system = "modern")}
else {
return(NA)
}
}
do.call(rbind, lapply(some_dummy_dates$date, fun_excel_date))
控制台输出:
# [,1]
#[1,] 3967
#[2,] 7783
#[3,] 6028
#[4,] 4479
当应用于一个元素时,该函数可以正常工作,例如excel_numeric_to_date(as.numeric(as.character(29536)), date_system = "modern"),因为它返回"1980-11-11"。
但是,当应用于整个列时,该函数会返回一个无法解释的数字输出。
即使在函数内部将x 参数更改为x <- as.Date(x, origin="1899-12-30"),问题仍然存在。
数据
some_dummy_dates <-structure(list(date = c(29536, 33352, 31597, 30048)), class = "data.frame", row.names = c(NA,
-4L))
我是否在函数内部遗漏了什么? 还有其他方法吗?
【问题讨论】:
标签: r excel function date janitor