我正在编写一个功能,因此它返回了一个月和年度的一个月工作日。
它使用的是。IS.Bizday如果给定的日期是工作日或false,则返回true。
。我的功能:
library(bizdays)
UltDiaLabor <- function(mesanio) {
ult<-as.Date(as.yearmon(mesanio, "%m%Y"), frac = 1)
while(!is.bizday(ult)) {
ult=ult-1
}
return(ult)
}
它从提供As. Yearmon的一个月的最后一天开始,其格式为" Mmyyyy",并进行了Bizday的测试。每天都保持一天的收获,直到bizday返回true,以便条件!bizday for False and Breaks to。(应该)
我得到的"条件的长度大于循环时的长度大于1",不知道问题在哪里。
预先感谢
我认为您正在尝试将函数与日期向量一起使用,但是没有办法在以上的值中评估逻辑运算符。我建议您改用sapply()
。
date <- "122001"
dates <- c("122001", "091999")
UltDiaLabor(date) # works
UltDiaLabor(dates) # does not work
sapply(dates, UltDiaLabor) # works