首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用flextable和officer库向表格添加标题

使用flextable和officer库向表格添加标题
EN

Stack Overflow用户
提问于 2020-03-03 20:20:06
回答 1查看 1K关注 0票数 0

我正在准备一个从分类变量创建表格输出的函数,可以使用flextable和officer库将其导出到word。

所需的库:

代码语言:javascript
复制
library(dplyr)
library(officer)
library(flextable)

函数为:

代码语言:javascript
复制
tab_std<-function(data, var, Name_of_variable, footer, Title) { 
  data <- data[!is.na(data[[var]]), ]
  T1 <- as.data.frame(table(data[[var]]))
  all <- sum(T1[, 2])
  T1 <- T1 %>% mutate(
    !!Name_of_variable := as.character(Var1),
    "Percent" = roundUp(Freq * 100 / all),
    "N" = as.numeric(Freq)
  ) %>%
    select(!!Name_of_variable, "Percent", "N")
  T1[ ,2]<-sapply(T1[,2], function(x) ifelse(x=="--","--",paste0(mask_m(x,all),"%")))

  T1%>% flextable()%>% add_header_lines(Title)%>% add_footer_lines(footer)
}

此函数中使用的函数包括:

代码语言:javascript
复制
masking_criteria<-c(3,4,5)

mask_m<-function(x,N){
  x= ifelse(N<masking_criteria[1],"--",x)
}

通过此函数,我使用函数add_header_lines()将标题添加到表中,但此函数将标题添加为表的一部分。我希望标题作为文本显示在表格的顶部,而不是表格的一行。例如:

代码语言:javascript
复制
test<-data.frame(gender=c("M","M","F",NA),Names=c("A","B","C","D"),Amount=c(3,4,2,5))
tab_std(test, "gender","Gender","This is the footer","This is my Title")

有没有可能在这个函数的顶部添加标题?

EN

回答 1

Stack Overflow用户

发布于 2020-04-04 00:16:49

您可以尝试使用名为{rrtable}的新程序包。它允许您输出灵活的对象,同时添加额外的行作为标题。请参考函数add_text()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60507139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档