Я готовлю функцию для создания выходных данных таблицы из категориальной переменной, которую можно экспортировать в слово, используя библиотеку flextable и employee.
необходимые библиотеки:
library(dplyr)
library(officer)
library(flextable)
Функция:
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)
}
Функции, которые используются в этой функции:
masking_criteria<-c(3,4,5)
mask_m<-function(x,N){
x= ifelse(N<masking_criteria[1],"--",x)
}
С помощью этой функции я добавляю заголовок в таблицу с помощью функции add_header_lines (), но это добавляет заголовок как часть стола. Я хочу, чтобы заголовок отображался в виде текста в верхней части таблицы, а не в строке таблицы. Например:
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")
Есть ли какой-нибудь возможный способ добавить заголовок вверху этой функции?