R:expss包:可以自动生成表格吗?

时间:2019-03-22 16:43:34

标签: html-table automation rnotebook 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中的餐桌。

欢迎使用其他任何自动生成表格的技巧。

感谢所有帮助, 米哈拉(Michaëla)

1 个答案:

答案 0 :(得分: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()
        }
    ))
}