Return 引导 R 中的两个值

Return two values from boot R

我正在尝试 bootstrap 一个函数,我希望 boot 函数 return 超过 1 个值:

library(boot)
r=50;c=50
m1 <- (sample(1000,r*c,T))
nboot = 100
boot_fun <- function(m,b){
  m <- m[b]
  mn <- mean(m)
  vr <- var(m)
  tmp <- list(mn,vr)
  return(tmp)
}
bmat <- boot(data=m1,statistic=boot_fun,R=nboot)

在这里,我想 return vrmn 值,但这当然行不通,因为我收到此错误:

Error in boot(data = m1, statistic = boot_fun, R = nboot) incorrect number of subscripts on matrix

我可以 bootstrap 两次,但这需要更多时间。

有什么方法可以从 boot 函数中 return 多个对象吗?

好吧,我有点傻了。我的问题的答案很简单:

我只是将附加信息附加到引导函数中返回的向量,稍后我只是对 bmat$t 矩阵进行子集化。

所以答案可以是这样的:

library(boot)
r=50;c=50
m1 <- (sample(1000,r*c,T))
nboot = 100
boot_fun <- function(m,b){
  m <- m[b]
  mn <- mean(m)
  vr <- var(m)
  return(c(mn,vr))
}
bmat <- boot(data=m1,statistic=boot_fun,R=nboot)
mn <- bmat$t[,1]
vr <- bmat$t[,2]

希望对大家有所帮助。