Я пытаюсь написать свою первую функцию на R, и я был бы признателен за помощь.
Как исследователь, проводящий эксперименты 2 или 3 раза в год, мне часто приходится сравнивать методы лечения, используя anova
. Я пытаюсь автоматизировать Анализ отклонений, чтобы получить список с результатами, блок данных, содержащий среднее значение, n и sd, и тест Тьюки для сравнения моих обработок.
Пока у меня есть следующий код:
# 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+vtreat3
или vx~vtreat1*vtreat2
, и в то же время иметь возможность использовать эти параметры для кадра данных статистики?
Я мог бы просто выполнить две или три функции, которых будет достаточно для моих экспериментов, но я действительно хочу понять и изучить процесс использования функций и формул в R.