Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中为tbl_摘要创建函数_R_Function_Gtsummary - Fatal编程技术网

在R中为tbl_摘要创建函数

在R中为tbl_摘要创建函数,r,function,gtsummary,R,Function,Gtsummary,我有一个示例数据集,如下所示,以及生成所需表的代码。但是,我还有很多变量要添加到表中。为每个变量重复相同的代码以创建表将使代码变得超长。我试图将tbl_摘要写入函数,但似乎不起作用,我不知道如何修复它 library(gtsummary) library(tidyverse) test <- data.frame("Gender" = c("Female", "Male", "Male", "Fem

我有一个示例数据集,如下所示,以及生成所需表的代码。但是,我还有很多变量要添加到表中。为每个变量重复相同的代码以创建表将使代码变得超长。我试图将tbl_摘要写入函数,但似乎不起作用,我不知道如何修复它

library(gtsummary)
library(tidyverse)

test <- data.frame("Gender" = c("Female", "Male", "Male", "Female", "Female", "Female", "Male", "Female", "Female", "Male"),
                   "source" = c("FFQ", "Foodworks", "FFQ", "FFQ", "FFQ", "FFQ", "FFQ", "Foodworks", "Foodworks", "Foodworks"),
                   "EnergyDF_kJ_total" = c(8060.61, 16802.2, 10755.57, 8061.82, 8995.44, 3838.91, 7495.89, 8057.92, 15831.68, 5298.25),
                   "vegetable_score" = c(6.47, 5.55, 8.39, 5.17, 10, 1.82, 3.11, 1.21, 2.76, 1.21)
)

# create table overall
tbl_EnergyDF_kJ_total <-
  test %>%
  select(Gender, EnergyDF_kJ_total) %>%
  tbl_summary(by = Gender, missing = "no",
              type = EnergyDF_kJ_total ~ "continuous",
              statistic = EnergyDF_kJ_total ~ "{mean} ({sd})") %>%
  modify_header(stat_by = "**{level}**") # CHANGE COLUMN HEADER

# REMOVE STATISTICS FOR EnergyDF_kJ_total FROM TABLE
tbl_EnergyDF_kJ_total$table_body <-
  tbl_EnergyDF_kJ_total$table_body %>%
  mutate_at(vars(stat_1, stat_2), ~NA_character_)

# create table stratified by source
tbl_EnergyDF_kJ_total_by_source <-
  test %>%
  # keep the continuous var and the two categorical variables
  select(Gender, EnergyDF_kJ_total, source) %>%
  group_nest(source) %>%
  mutate(
    tbl = map2(
      source, data, 
      ~tbl_summary(.y, by = Gender, 
                   type = EnergyDF_kJ_total ~ "continuous",
                   statistic = EnergyDF_kJ_total ~ "{mean} ({sd})",
                   label = list(EnergyDF_kJ_total = .x), missing = "no") %>%
        add_overall(col_label = "**Overall**") %>%
        add_n()
    )
  ) %>%
  pull(tbl) %>%
  tbl_stack()


# stacking the tables
tbl_stack(list(tbl_EnergyDF_kJ_total, tbl_EnergyDF_kJ_total_by_source)) %>%
  modify_table_body(dplyr::relocate, c("n", "stat_0"), .after = "label") %>%
  # indenting the source rows
  as_gt()  %>%
  gt::tab_style(style = gt::cell_text(indent = gt::px(10), align = "left"), 
                locations = gt::cells_body(columns = gt::vars(label), 
                                           rows = !is.na(n)))
下面是我试图为整个表创建函数的代码,但没有成功。任何帮助都将不胜感激

x <- function(test, var1, var2) {
test %>%
select(var1, var2) %>%
tbl_summary(by = var1, missing = "no",
type = var2 ~ "continuous",
statistic = var2 ~ "{mean} ({sd})") %>%
modify_header(stat_by = "{level}") # CHANGE COLUMN HEADER
}

test1 <- x(test, Gender, EnergyDF_kJ_total)

下面是一个已功能化的表格示例。快乐编程

remotes::install_githubddsjoberg/gtsummary安装版本1.3.5.9007 图书馆概述 图书馆管理员 包装版本概述 测试% 组\源%>% 变异 tbl=map2 来源,数据,, ~tbl_summary.y,by=性别, 类型=一切~连续, 统计=一切{mean}{sd}, 标签=所有内容~.x,缺失=否%>% 添加总体颜色标签=**总体**%>% 添加 %>% pulltbl%>% tbl_堆栈 叠桌子 tbl\u堆栈列表tbl\u标题行,tbl\u变量按\u来源%>% 修改\u table\u bodydplyr::重新定位,cn,stat\u 0,.after=label } 分别构建每个表 tbl1% 缩进源行 as_gt%>% gt::tab_stylestyle=gt::cell_textinent=gt::px10,align=left, 位置=gt::cells\u bodycolumns=gt::varslabel, 行=!是南先生吗
下面是一个已功能化的表格示例。快乐编程

remotes::install_githubddsjoberg/gtsummary安装版本1.3.5.9007 图书馆概述 图书馆管理员 包装版本概述 测试% 组\源%>% 变异 tbl=map2 来源,数据,, ~tbl_summary.y,by=性别, 类型=一切~连续, 统计=一切{mean}{sd}, 标签=所有内容~.x,缺失=否%>% 添加总体颜色标签=**总体**%>% 添加 %>% pulltbl%>% tbl_堆栈 叠桌子 tbl\u堆栈列表tbl\u标题行,tbl\u变量按\u来源%>% 修改\u table\u bodydplyr::重新定位,cn,stat\u 0,.after=label } 分别构建每个表 tbl1% 缩进源行 as_gt%>% gt::tab_stylestyle=gt::cell_textinent=gt::px10,align=left, 位置=gt::cells\u bodycolumns=gt::varslabel, 行=!是南先生吗
你能分享你的数据吗?我已经包括了生成数据的代码。但丹尼尔解决了我的问题。非常感谢。你能分享你的数据吗?我已经包括了生成数据的代码。但丹尼尔解决了我的问题。非常感谢。谢谢丹尼尔的回复。它工作得很好。谢谢丹尼尔的回复。它工作得很好。