Возникают некоторые проблемы при использовании do.call () с более чем 2 переменными.
ws.adjustments <- lapply(names(wdata@WS), function(name.ws) {
ws <- wdata@WS[,name.ws]
adjust.idx <- which(name.ws == sensors)
if(length(adjust.idx) == 0) {
adjust.vec <- rep(F, nrow(wdata@WS))
} else if(length(adjust.idx) == 1) {
adjust.vec <- excluded.periods[[adjust.idx]]
} else {
adjust.vec <- do.call('|', excluded.periods[adjust.idx])
}
ws[adjust.vec] <- NA
return(ws)
})
При запуске приведенного выше кода do.call () выдает эту ошибку:
Error in `|`(c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, :
4 arguments passed to '|' which requires 2
3.
do.call("|", excluded.periods[adjust.idx])
2.
FUN(X[[i]], ...)
1.
lapply(names(wdata@WS), function(name.ws) {
ws <- wdata@WS[, name.ws]
adjust.idx <- which(name.ws == sensors)
if (length(adjust.idx) == 0) { ...
Как заставить do.call ("|") использовать более двух переменных?
exception.periods = большой список (4 элемента)
Используется для удаления дат, указанных в файле конфигурации.