我试图从R包“flextable”创建一个“flexable”对象。我需要在多个列中放置相同的列名。当我把它们放在函数“flextable”的“col_key”选项中时,我得到了“duplicated col_keys”的错误。有办法解决这个问题吗?
a<-c(1:8) b<-c(1:8) c<-c(2:9) d<-c(2:9) A<-flextable(A,col_keys=c("a","b","a","b"))
这是我得到错误的示例代码。
pkbketx91#
目前,flextable不允许重复的列键。但是,您可以通过在表的顶部添加一行“标题”或一行列标签来实现相同的结果。这些标头可以包含重复的值。您可以使用“add_header_row”函数来完成此操作。下面是使用虹膜数据集的基本示例。
ft <- add_header_row( ft, values = c("", "length", "width", "length", "width"), top = FALSE ) ft <- theme_box(ft)
https://davidgohel.github.io/flextable/articles/layout.html
0s7z1bwu2#
我找到了一种变通方法,将字符\r添加到列名中以创建唯一的列名:
library(flextable) A <- matrix(rnorm(8), nrow = 2, ncol = 4) A <- as.data.frame(A) col_Names <- c("a","b","a","b") nb_Col_Names <- length(col_Names) for(i in 1 : nb_Col_Names) { col_Names[i] <- paste0(col_Names[i], paste0(rep("\r", i), collapse = ""), collapse = "") } colnames(A) <- col_Names tbl_A <- flextable(A)
bybem2ql3#
目前,使用set_header_labels:
set_header_labels
library(flextable) a<-c(1:8) b<-c(1:8) c<-c(2:9) d<-c(2:9) A <- data.frame(a,b,c,d) flextable(A) |> set_header_labels(`a` = "a", `b` = "b", `c` = "a", `d` = "b")
3条答案
按热度按时间pkbketx91#
目前,flextable不允许重复的列键。但是,您可以通过在表的顶部添加一行“标题”或一行列标签来实现相同的结果。这些标头可以包含重复的值。
您可以使用“add_header_row”函数来完成此操作。
下面是使用虹膜数据集的基本示例。
https://davidgohel.github.io/flextable/articles/layout.html
0s7z1bwu2#
我找到了一种变通方法,将字符\r添加到列名中以创建唯一的列名:
bybem2ql3#
目前,使用
set_header_labels
: