Параметризованная функция группового тестирования в R

Задача - построить функцию, которая принимает на вход data.frame гарантированно состоящий из 3 переменных. Первая переменная всегда количественная, две другие - факторы с двумя уровнями. Функция должна возвращать таблицу сочетаний с уровней факторов и соответствующие значения теста первой количественной переменной.

Мой вариант:

normality_by <- function(test){

  test %>%group_by(test[,2], test[,3]) %>% summarise(p_value = shapiro.test(test[,1])$p.value)
}

Однако он выдает р-значение без учета группировок.

normality_by(mtcars[,c('mpg', 'am', 'vs')])

введите сюда описание изображения

Кроме того, теряются имена переменных в результирующем тиббле.

Как можно исправить эти ошибки?


Ответы (0 шт):