我正在尝试使用 tryCatch 生成 p 值列表,矩阵中有几行没有足够的观察值来进行 t 检验。这是我到目前为止生成的代码:
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)
})}
它肯定会抛出一个错误 [我在 message("Error") 行中进行确认]。问题是向量 pValues 中没有任何“NA”,尽管它应该有。
预先感谢您的帮助!
最佳答案
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)
})
})
关于r - tryCatch 似乎没有返回我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956031/