我有一个条件表达式(例子)如下
g1<-function(list (m1), iter=1000L)
M1<-if (!exists("m1")) {0
} else if (is.na(m1$results$RMSE[1])){0
} else if (!exists(g1)){0
} else {m1
}
因此M1产生0或m1,(m1和g1是两个对象)。对于m2 ... m85和g2 ... g85,该条件表达式重复85次,产生M1 ... M85。
m1 ... m85和g1 ... g85都是对象。
我想通过单个表达式消除重复,以获得M1 ... M85,从而产生M1 ... M85的结果。
尝试过没有运气的申请。我不能使用正确的语法来将条件表达式作为函数。如果m和g是对象并且不能放在矩阵,数据框等中,我如何使用apply。
谢谢
答案 0 :(得分:1)
您可以尝试使用此代码。它将返回包含85个元素的列表。
n <- 1:85
m <- paste0("m", n)
g <- paste0("g", n)
mapply(function(mi, gi) {
if (!exists(mi) || is.na(get(mi)$results$RMSE[1]) || !exists(gi))
0
else
get(mi)
}, m, g)