The for loop checks how many days a project was active during a month. I have a file containing two columns startdates of a project (Finance$Start WO
) and end dates (Finance$Eind Wo
). And to determine the number of days worked on a project, I use the 'bizdays' function and use:
ts_begin <- seq(ymd('2020-1-1'), ymd('2021-1-1'), '1 month')
Sample of start/ end dates:
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
}
}
}
I expected a 81 (=nrow(Finance) x 12 matrix as output, but received a 12 x 11 matrix. Can you please tell what's wrong?