首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >while循环中条件的长度大于1

while循环中条件的长度大于1
EN

Stack Overflow用户
提问于 2017-03-08 22:12:16
回答 1查看 450关注 0票数 0

我正在编写一个函数,以便它返回给定月份和年份的月份的最后一个工作日。

它使用bizdays包中的is.bizday。如果给定日期是工作日,则is.bizday返回TRUE,否则返回FALSE。

我的函数:

代码语言:javascript
复制
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。一天一次进行减法运算,直到is.bizday返回TRUE,所以条件!is.bizday会返回FALSE并中断。(应该)

我得到“while循环中条件的长度大于1”,但不知道问题出在哪里。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-08 22:37:42

我认为您正在尝试将该函数与日期向量一起使用,但是无法使用一个以上的值来计算while循环中的逻辑运算符。我建议您改用sapply()

代码语言:javascript
复制
date <- "122001"
dates <- c("122001", "091999")

UltDiaLabor(date) # works
UltDiaLabor(dates) # does not work
sapply(dates, UltDiaLabor) # works
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42673606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档