tryCatch 似乎没有返回我的变量

Aid*_*inn 3 error-handling r

我正在尝试使用 tryCatch 生成 p 值列表,矩阵中有几行在测试时没有足够的观察结果。这是我到目前为止生成的代码:

pValues <- c()
for(i in row.names(collapsed.gs.raw)){
  tryCatch({
    t <- t.test(as.numeric(collapsed.gs.raw[i,]) ~ group)
    pValues <- c(pValues, t$p.value)
  },
  error = function(err) {
    pValues <- c(pValues, "NA")
    message("Error")
    return(pValues)
  })}
Run Code Online (Sandbox Code Playgroud)

它肯定会抛出一个错误[我放入消息(“错误”)行进行确认]。问题是向量 pValues 中没有任何“NA”,尽管它应该有。

在此先感谢您的帮助!

Aar*_*ica 6

你的函数pvalues中的 是一个局部变量。您也许可以使用 来修复此问题<<-,但最好让函数只返回一个所需的值,并使用 来在函数外部收集它们sapply。也许类似(未经测试):

pValues <- sapply(rownames(collapsed.gs.raw), function(i) {
  tryCatch({
    t.test(as.numeric(collapsed.gs.raw[i,]) ~ group)$p.value
  },
  error = function(err) {
    message("Error")
    return(NA)
  })
})
Run Code Online (Sandbox Code Playgroud)