应用函数以与包含对象的嵌入式条件表达式一起使用

时间:2014-02-27 20:24:28

标签: r

我有一个条件表达式(例子)如下

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。

谢谢

1 个答案:

答案 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)