R 函数根据样本均值、SD 和 n 执行方差分析和 TukeyHSD

R function to perform ANOVA and TukeyHSD from Sample Mean, SD, and n

我想知道是否有任何 R 函数可以根据样本均值、SD 和样本大小 (n) 执行方差分析和 TukeyHSD。我从 rpsychi 中找到了 ind.oneway.second 函数来对样本统计执行方差分析,但找不到任何函数来对样本统计执行 TukeyHSD。

library("rpsychi")

Mean <- c(90,85,92,100,102,106)
SD <- c(9.035613,11.479667,9.760268,7.662572,9.830258,9.111457)
SampleSize <- c(9,9,9,9,9,9)

fm1 <- ind.oneway.second(Mean, SD, SampleSize)
fm1
names(fm1)
TukeyHSD(fm1$anova.table)

这应该有效。基本上它只是模拟与给定均值、标准差和样本大小完全匹配的数据。之后,您可以拟合感兴趣的模型并进行任何您感兴趣的 post 临时测试。

Mean <- c(90,85,92,100,102,106)
SD <- c(9.035613,11.479667,9.760268,7.662572,9.830258,9.111457)
SampleSize <- c(9,9,9,9,9,9)


gen_data <- function(means, sds, samplesizes){
  n.grp <- length(means)
  grps <- factor(rep(1:n.grp, samplesizes))
  dat <- lapply(1:n.grp, function(i) {scale(rnorm(samplesizes[i]))*sds[i] + means[i]})
  y <- do.call(rbind, dat)
  out <- data.frame(group = grps, y = y)
  out
}

simulated_data <- gen_data(Mean, SD,SampleSize)
av <- aov(y ~ group, data = simulated_data)
summary(av)
TukeyHSD(av)