1

我正在寻找一种使用 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()

我正在寻找一个函数,我只需要指定变量 Eg 。

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 中运行表格书籍。

欢迎任何其他自动化表生成的技巧。

感谢所有帮助,米查拉

4

1 回答 1

0

有一个相当通用的解决方案来处理非标准评估 - 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()
        }
    ))
}
于 2019-03-22T22:15:37.857 回答