用于计算方差分析并在R

时间:2018-08-31 21:25:02

标签: r statistics formula anova

我正在尝试用R编写我的第一个函数,希望对您有所帮助。

作为一名研究人员,每年进行2到3次实验,我经常不得不比较使用anova的治疗方法。我正在尝试自动化方差分析以返回带有结果的列表,包含均值,n和sd的数据框以及用于比较我的治疗的Tukey测试。

到目前为止,我有以下代码:

# Function
Tt.aov <- function(vx, vtreat)
{
    VarAov <- aov(vx~vtreat)
    VarAnova <- anova(VarAov)
    p <- VarAnova$Pr[1]
    stats <- aggregate(vx, by=list (Treat=vtreat),
                       FUN=function(x) c(mean=mean(x), sd=sd(x), n=length(x)))
    #stats <- do.call(data.frame, stats)
    if (p<0.05) {Tuk <- TukeyHSD(VarAov)};
    aov.output <- list(anova=VarAnova,stats=stats,p=p)
    print(aov.output)
}

现在,我的功能在1种治疗中效果很好(vtreat)。问题是,如何使我的函数保持打开状态以添加更多的处理方法,比如说vx~vtraet1+vtreat2+vtreat3vx~vtreat1*vtreat2之类的东西,同时又可以将该参数用于stats数据框?

我可以做两个或三个足以满足我的实验需求的函数,但是我真的很想了解和学习在R中使用函数和公式的过程。

0 个答案:

没有答案