Как я могу использовать do.call () для более чем двух аргументов? - PullRequest
0 голосов
/ 23 мая 2019

Возникают некоторые проблемы при использовании 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 элемента)

Используется для удаления дат, указанных в файле конфигурации.

...