如何为两个以上的参数使用do.call()?

时间:2019-05-23 14:54:44

标签: r do.call

将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个元素)

它用于删除配置文件中指定的日期。

0 个答案:

没有答案