自助法的错误
您在一家临床实验室担任 R 程序员。实验室的统计学家正在进行一项大规模分析,以确定不同小鼠物种平均体重的取值范围。她编写了一个函数 bootstrap(),并使用 futures 后端并行地将其应用到 weight_list 的每个元素。然而,代码抛出了如下错误:
Error in checkForRemoteErrors(val) :
one node produced an error: missing values and NaN's not allowed if 'na.rm' is FALSE
她找不到是 weight_list 的哪个元素导致了错误。而且,她也丢失了这项耗时计算的所有结果。现在请您修复这段代码。已为您加载 furrr 包,并为 futures 规划了 multisession。
本练习是课程的一部分
R 并行编程
练习说明
- 在花括号中提供代码,包装成一个可以捕获错误的函数。
- 在 error 参数中,提供一个接收单个参数
e并返回字符串"Error here!"的函数。 - 使用
furrr函数将bootstrap()映射到weight_list的所有元素。
交互式实操练习
通过完成这段示例代码来试试这个练习。
bootstrap <- function (x) {
# Supply code to a function for catching errors
___({est <- rep(0, 1e3)
for (i in 1:1e3) {
b <- sample(x, replace = T)
est[i] <- mean(b)
}
return(quantile(est, c(0.25, 0.75)))
# Supply a function that returns a string
}, error = ___
)
}
# Map bootstrap() to every element of weight_list
___(___, ___)
plan(sequential)