首页 > 解决方案 > 如何用 lapply 引导?R中的boot()引导错误

问题描述

"Error in statistic(data, original, ...) : unused argument (original)"尝试执行以下代码时出现错误 。具体来说,我正在尝试应用一个函数并为每个 plot# 引导这些结果。我在这里错过了一些简单的东西吗?

    library(codyn) # has sample dataset called pplots
    library(boot)

    str(pplots)

    stability <- function(x){
  mean(multivariate_change(x,
                           species.var = "species",
                           time.var = "year",
                           abundance.var = "relative_cover",
                           replicate.var = "plot")$composition_change)
}

boot_obj <- lapply(splitspplots,boot,statistic = stability,R = 20)
boot_obj <- lapply(splitspplots,myBootFun)

myBootFun <- function(x,i) {
  lapply(x[i],boot, statistic=stability, R = 10)
}
myBootFun <- function(x,i) {
  boot(x[i], statistic=stability, R = 10)
}
splitspplots <- split(pplots,pplots$plot)
lapply(splitspplots, print(myBootFun))

标签: rstatistics-bootstrap

解决方案


我想出了一种不同的方法来做到这一点,它也很有效。

我使用了一个 for 循环来循环不同的组/站点,但我没有在这里展示。这是引导代码。

data_sampled <- data_grouped %>%
    group_by(SITE_ID) %>%
    crossing(id = seq(100)) %>% # create replicate dataframes
    sample_n(size = n(), replace = T) # sample dataframes

推荐阅读