Я пытаюсь обобщить код ANOVA некоторых повторных измерений для строкового ввода переменной результата и переменной группировки, как показано ниже:
outcome_var<-"outcome_varnam1"
grouping_var <- "grouping_varnam1"
Поэтому в dplyr я могу вызывать соответствующие столбцы фрейма данных, используя
!!as.name(outcome_var)
это работает для большинства функций, но вызывает ошибку в сгруппированных попарных функциях t-теста
Error: Strings must match column names. Unknown columns: !!as.name(grouping_var)
Мне интересно, как вызвать переменные как имена столбцов в этой функции без явного использования имена объектов столбцов, так как полный код анализа ANOVA длинный, и я должен sh повторить это для десятков различных переменных результата и групповых факторов. Использование get () или sym () для меня не работает. Ниже приведен полный пример кода. Я надеюсь, что данный фрагмент данных дает достаточно информации.
temp<-data.frame(Subj.ID = c("a", "a", "a", "a", "a", "a"),
timepoint = c("101", "102", "103", "104", "105", "106"),
grouping_varnam1 = c("Placebo", "Placebo", "Placebo", "Placebo", "Placebo", "Placebo"),
outcome_varnam1 = c(12.6, 9.6, 16.4, NA, 43.1, NA))
attach(temp)
outcome_var<-"outcome_varnam1"
grouping_var<-"grouping_varnam1"
#these lines for testing assumptions of anova work fine using the format:
temp %>% group_by(!!as.name(grouping_var)) %>% get_summary_stats(!!as.name(outcome_var), type = "mean_sd")
temp %>% group_by(!!as.name(grouping_var)) %>% identify_outliers(!!as.name(outcome_var))
temp %>% group_by(!!as.name(grouping_var)) %>% shapiro_test(!!as.name(outcome_var))
#this line for a pairwise t-test grouped by timepoint does not work:
temp %>%
group_by(timepoint) %>%
pairwise_t_test(!!as.name(outcome_var) ~ !!as.name(grouping_var), paired = FALSE, p.adjust.method = "holm")
Error: Strings must match column names. Unknown columns: !!as.name(grouping_var)