R

时间:2018-06-07 18:45:12

标签: r header flextable

我正在努力创造一个灵活的'来自R包的对象" flextable"。我需要在多个列中放置相同的列名。当我把它们放在" col_key"功能中的选项" flextable"我收到"重复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"))
&#13;
&#13;
&#13;

这是我收到错误的示例代码。

2 个答案:

答案 0 :(得分:1)

就目前而言,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

答案 1 :(得分:0)

我找到了一种解决方法,将字符 \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)