Purrr 映射将分析输出添加到 df

Purr map to add analysis output to df

我最近问过一个非常相似的问题 这里 -

但我现在需要更简单的输出,并且我正在努力调整之前建议的(非常有用的)代码。

所以,

我已经观察到数据,我现在按照上面的方式随机化-

set.seed(42)
ID <- sample(1:30, 100, rep=T) 
Trait <- sample(0:1, 100, rep=T) 
Year <- sample(1992:1999, 100, rep=T)
df <- cbind(ID, Trait, Year)
df <- as.data.frame(df)

我想按年份分组,并提取总体均值 n 特征,以及组间 95% CIs。

也许是这样的

df <- df %>%
group_by(Year) %>%
dplyr::summarise(
n_Trait = sum(Trait == 1),
n_total = length(Trait)) %>%
ungroup()

我现在想重复上述 x 次,并从这些输出迭代中提取平均值 n_Trait 和 95%CI。 非常喜欢这个,但我不想 运行 完整的 ls 模型 https://www.tidymodels.org/learn/statistics/bootstrap/

我希望这是有道理的?

您可以将 data.frame df 的构造放在一个函数中,然后使用 replicate:

my_fun <- function() {
  ID <- sample(1:30, 100, rep=T) 
  Trait <- sample(0:1, 100, rep=T) 
  Year <- sample(1992:1999, 100, rep=T)
  
  res <- tibble(Trait = Trait, Year = Year) %>%
    group_by(Year) %>%
    dplyr::summarise(
      n_Trait = sum(Trait == 1),
      n_total = length(Trait)) %>%
    ungroup()
  
  return(res)
}

bind_rows(replicate(10, my_fun(), simplify = FALSE))

这样您就可以将实验重复十次,之后可以做进一步的分析。