首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOR循环R的输出不足

FOR循环R的输出不足
EN

Stack Overflow用户
提问于 2020-04-15 17:21:56
回答 1查看 33关注 0票数 0

for循环检查项目在一个月内处于活动状态的天数。我有一个文件,其中包含两列项目的开始日期(财务$Start WO)和结束日期(财务$Eind Wo)。为了确定在项目上工作的天数,我使用‘bizday’函数,并使用:

ts_begin <- seq(ymd('2020-1-1'), ymd('2021-1-1'), '1 month')

开始/结束日期示例:

代码语言:javascript
复制
Finance$`Start WO` <- c("2020-01-16", "2020-02-17", "2020-03-04")
Finance$`Eind Wo` <- c("2020-06-30", "2020-07-14" , "2020-12-31")


Dagen <- matrix(0, ncol = 12, nrow = 81)

    for (i in nrow(Finance)) {
      for (j in 2:13) {

     if (Finance$`Start WO`[i] > ts_begin[j-1] & Finance$`Start WO`[i] < ts_begin[j]) {
      Dagen[i,j-1] <- bizdays(ts_begin[j-1],ts_begin[j],cal) - bizdays(ts_begin[j-1],Finance$`Start WO`[i],cal)

       } else if (Finance$`Eind Wo`[i] > ts_begin[j-1] & Finance$`Eind Wo`[i] <= ts_begin[j]) {
     Dagen[i,j-1] <- bizdays(ts_begin[j-1], Finance$`Eind Wo`[i], cal)

      } else if (Finance$`Start WO`[i] < ts_begin[j-1] & Finance$`Eind Wo`[i] >= ts_begin [j]) {
      Dagen[i,j-1] <- bizdays(ts_begin[j-1], ts_begin[j], cal ) 

       } else {
    Dagen[i,j-1] <- 0
  }
}
}

我希望输出为81 (=nrow(Finance) x 12 )矩阵,但得到的是12 x 11矩阵。你能告诉我出了什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-15 17:52:48

你想让我从1:nrow(Finance)逃走。我应该在这之后工作。

代码语言:javascript
复制
Finance$`Start WO` <- c("2020-01-16", "2020-02-17", "2020-03-04")
Finance$`Eind Wo` <- c("2020-06-30", "2020-07-14" , "2020-12-31")


Dagen <- matrix(0, ncol = 12, nrow = 81)

    for (i in 1:nrow(Finance)) {
      for (j in 2:13) {

     if (Finance$`Start WO`[i] > ts_begin[j-1] & Finance$`Start WO`[i] < ts_begin[j]) {
      Dagen[i,j-1] <- bizdays(ts_begin[j-1],ts_begin[j],cal) - bizdays(ts_begin[j-1],Finance$`Start WO`[i],cal)

       } else if (Finance$`Eind Wo`[i] > ts_begin[j-1] & Finance$`Eind Wo`[i] <= ts_begin[j]) {
     Dagen[i,j-1] <- bizdays(ts_begin[j-1], Finance$`Eind Wo`[i], cal)

      } else if (Finance$`Start WO`[i] < ts_begin[j-1] & Finance$`Eind Wo`[i] >= ts_begin [j]) {
      Dagen[i,j-1] <- bizdays(ts_begin[j-1], ts_begin[j], cal ) 

       } else {
    Dagen[i,j-1] <- 0
  }
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61225293

复制
相关文章

相似问题

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