我以为这会是超级容易的,但我还是做错了一些事情。
示例数据
我有如下示例数据(这是弹性表列表的列表):
library(data.table)
library(flextable)
datA <- fread("anyvar somevar
2 4
2 3
2 5")
dat_list <- list("one" = list("datA" = datA, "datB" = 2*datA),"two" = list("datC" = 3*datA, "datD" = 4*datA), "three" = list("datE" = 5*datA, "datF" = 6*datA))
for (i in seq_along(dat_list) ) {
for (j in seq_along( dat_list[[i]] ) ) {
dat_list[[i]][[j]] <- flextable( dat_list[[i]][[j]] )
}
}
vector_of_lists <- c("one", "two", "three")
尝试
我只想给每个灵活表one
、two
、three
添加标题。
for (i in seq_along(dat_list) ) {
for (j in seq_along( dat_list[[i]] ) ) {
dat_list[[i]][[j]] <- add_header_row(dat_list[[i]][[j]], top = TRUE, values = paste0("Table: ", i, " Header of table", vector_of_lists[i] ))
}
}
我得到的错误是:
Error in inverse.rle(structure(list(lengths = colwidths, values = values), :
invalid 'rle' structure
所需输出:
类似于下面的内容,但随后添加:Table 1: Header of table one
1条答案
按热度按时间t1rydlwq1#
将代码从
add_header_row()
更改为set_caption()
是有效的问题是
add_header_rows()
通常希望用户包含一个命名字符向量,该向量与您希望为其提供附加标题信息的列名相匹配。为了至少使您最初的方法不出错,您可以指定colwidths = 2
,其中2是表的列数。样式略有不同,因为现在我们有两行标题,而不是一个标题和一个标题。