我想写一个函数,它将日期作为输入参数,输出将是日,月,周和星期。我的示例代码显示了一些错误。请帮助我 在这方面,谢谢。
我的示例代码如下:
myFunction <- function(date){
date <-as.numeric(as.Date(date, format = "%m/%d/%Y",origin = "1899-12-30"))
date$month<- strftime(date,"%m")
date$day<- strftime(date,"%d")
data$week<-strftime(date,"%w")
date$week_year<-strftime(date,"%W")
return(date$day,date$month,date$week,date$week_year)
}
当我调用函数时,显示错误:
myFunction(2016-07-26)
Error in as.POSIXlt.numeric(x, tz = tz) : 'origin' must be supplied
答案 0 :(得分:1)
您的输入是一个字符串。使用lubridate
你可以写
myFunction <- function(date){
library(lubridate)
t0 <- ymd(date)
return(list(day(t0), month(t0), week(t0), wday(t0, label=F, abbr=F), year(t0)))
}