r - flextable 对象第一列的缩进

标签 r flextable

我在建 flextable对象来显示表格,有时我想在第一列中添加一个或几个缩进,在那里我显示一些行的名称。
接下来我分享一些代码来模拟一些数据并有一个可重现的例子。我问题的真正出发点是ft ( Table 1 ):

library(dplyr)
library(flextable)

# Simulate data
g_A <- expand.grid(x = "A", y = c("A_1", "A_2"), z = c("A_1_a", "A_1_b", "A_2_a", "A_2_b"))
g_B <- expand.grid(x = "B", y = c("B_1", "B_2"), z = c("B_1_a", "B_1_b", "B_2_a", "B_2_b"))
g <- rbind(g_A, g_B)
n <- 123
set.seed(1)
df <- sample_n(g, n, replace = TRUE)

# Build table
tmp <- c(table(df$x)[1],
         table(df$y)[1],
         table(df$z)[1:2],
         table(df$y)[2],
         table(df$z)[3:4],
         table(df$x)[2],
         table(df$y)[3],
         table(df$z)[5:6],
         table(df$y)[4],
         table(df$z)[7:8])
my_tab <- data.frame("tmp" = names(tmp), "counts" = tmp, "percentages" = round(tmp/n*100, 2))

# flextable operations
ft <- flextable(my_tab)
ft <- set_header_labels(ft, tmp = "")
ft <- align(ft, align = "center")
ft <- align(ft, j = 1, align = "left")
# ft
现在,我想在第一列中缩进一些名称。例如,要缩进 A_1我尝试了以下策略:
compose(ft, i = 2, j = 1, as_paragraph(" A_1"))
compose(ft, i = 2, j = 1, as_paragraph("\t A_1"))
# Or
# colformat_char(ft, i = 2, j = 1, prefix = " ")
# colformat_char(ft, i = 2, j = 1, prefix = "\t")
但是它们不起作用(结果与表 1 中的结果相同)。 “次佳”策略可能是以下策略 (Table 2) :
compose(ft, i = 2, j = 1, as_paragraph("- A_1"))
# Or
# colformat_char(ft, i = 2, j = 1, prefix = "- ")
但是,我想要一个适当的缩进。
最后分享Table 3 ,我预期的最终结果,用缩进代替每个“-”。
等待你的见解!
再见

最佳答案

flextable 中缩进单元格您可以使用 padding功能:

ft <- padding(ft, i=2, j=1, padding.left=20)

关于r - flextable 对象第一列的缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64134725/

相关文章:

R - 在 Excel 输出中添加总计行

r - ggplot 中的配对段

r - 仅对某些列进行水平合并

html - Flexbox 表格标题左对齐与滚动条断开

r - 合并flextables并保留格式的方法

html - rvest:如何查找 HTML 页面中使用的所有类?

r - 使用 pandoc 将 html 编织到 Word docx

r - dplyr date as.numeric 奇怪的行为