R: пакет expss: возможно ли автоматизировать генерацию таблицы? - PullRequest
1 голос
/ 22 марта 2019

Я ищу способ автоматизировать генерацию таблиц с помощью пакета 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 Ответ

0 голосов
/ 23 марта 2019

Существует довольно универсальное решение для работы с нестандартной оценкой - 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()
        }
    ))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...