Я пишу функцию для моего (рабочего) R-скрипта, чтобы очистить мой код. У меня нет опыта написания функций, но я решил потратить некоторое время на это. Цель моей функции - выполнить несколько статистических тестов, передавая только необходимые данные, количественные и групповые переменные один раз . Однако я не могу заставить это работать. Для справки, я буду использовать фрейм данных ToothGrowth, чтобы проиллюстрировать мою проблему.
Скажем, я хочу запустить тест Крускала-Уоллиса и односторонний ANOVA на len
, чтобы сравнить разные группы с именем supp
, для любой причины. Я могу сделать это отдельно с помощью
kruskal.test(len ~ supp, data = ToothGrowth)
aov(len ~ supp, data = ToothGrowth)
Теперь я хочу написать функцию, которая выполняет оба теста. Я думал, что это должно сработать:
stat_test <- function(mydata, quantvar, groupvar) {
kruskal.test(quantvar ~ groupvar, data = mydata)
aov(quantvar ~ groupvar, data = mydata)
}
Но если я тогда запусту stat_test(ToothGrowth, "len", "sup")
, я получу ошибку
Error in kruskal.test.default("len", "supp") :
all observations are in the same group
Что я делаю не так? Любая помощь будет высоко ценится!