R: пакет expss: возможно ли автоматизировать генерацию таблицы?

Я ищу способ автоматизировать генерацию таблиц с помощью пакета expss, пытаясь перейти от spss к R. Я думаю, что это должно быть просто, но я что-то упускаю...

Я определяю только несколько разных таблиц в зависимости от типа вопроса. Например. таблица для одного ответа выглядит ниже

banner <- d %>% tab_cols(total(),Q2.banner,Q3.banner)
banner %>% 
tab_cells (Q1) %>%
tab_stat_cases(total_row_position = c("above"),label = 'N') %>%
tab_stat_cpct(total_row_position = c("none"), label = '%') %>%
tab_pivot (stat_position = "inside_rows") %>%  
drop_c ()  %>%
custom_format()

Я ищу функцию, в которой мне нужно только указать переменную, например.

Table1 = function (Q, banner) {
 banner %>%
 tab_cells (Q) %>%
 tab_stat_cases(total_row_position = c("above"),label = 'N') %>%
 tab_stat_cpct(total_row_position = c("none"), label = '%') %>%
 tab_pivot (stat_position = "inside_rows") %>%  
 drop_c ()  %>%
 custom_format()
}

В идеале я хотел бы также добавить заголовок таблицы. Я бегу за столами в R Notebook.

Любые другие советы по автоматизации генерации таблиц приветствуются.

Спасибо за помощь, Михаэль

1 ответ

Существует довольно универсальное решение для работы с нестандартной оценкой - eval.parent(substitute(...)), В вашем случае это выглядит так:

Table1 = function (Q, banner) {
    eval.parent(substitute(
        {
            banner %>%
                tab_cells (Q) %>%
                tab_stat_cases(total_row_position = c("above"),label = 'N') %>%
                tab_stat_cpct(total_row_position = c("none"), label = '%') %>%
                tab_pivot (stat_position = "inside_rows") %>%  
                drop_c ()  %>%
                custom_format()
        }
    ))
}
Другие вопросы по тегам