将do.call()与两个以上的变量一起使用时会遇到一些麻烦。
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(“ |”)使用两个以上的变量?
excluded.periods =大型列表(4个元素)
它用于删除配置文件中指定的日期。