【问题标题】:Return two values from boot R从引导 R 返回两个值
【发布时间】:2018-09-20 12:11:08
【问题描述】:

我正在尝试引导一个函数,我希望 boot 函数返回超过 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)

在这里,我想返回 vrmn 值,但这当然不起作用,因为我收到此错误:

启动错误(data = m1, statistic = boot_fun, R = nboot) 矩阵上的下标数不正确

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

有没有办法从boot 函数返回多个对象?

【问题讨论】:

  • 这是来自boot 包的boot 函数吗?如果是这样,您应该将library(boot) 添加到您的代码中。
  • @Spacedman 很抱歉造成误解。我的意思是引导包,我添加了相关行。

标签: r statistics-bootstrap


【解决方案1】:

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

我只是将附加信息附加到引导函数中返回的向量,然后我只是将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]

我希望这可以对某人有所帮助。

【讨论】:

  • 什么意思?我的回答还不够吗?
猜你喜欢
  • 2014-04-08
  • 2012-04-28
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 2020-03-19
  • 2015-07-06
  • 2011-04-18
  • 2017-09-09
相关资源
最近更新 更多