我正在寻找一个选项来设置flextable.
一般来说,字体系列和表格、行和列的大小可以通过糖函数flextable::font和来设置flextable::fontsize。但是,无论是在 HTML 输出中还是在导出到 docx 时,两者都不会影响字体系列和方程的大小。
运行下面的 reprex 会为文本列提供正确的字体系列和大小,但不会为公式列提供正确的字体系列和大小。
library(flextable)
# Note: Running the reprex requires the `equatags` package.
# Also equatags::mathjax_install() must be executed
# to install necessary dependencies. See ?flextable::as_equation.
eqs <- c(
"(ax^2 + bx + c = 0)",
"a \\ne 0",
"x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}"
)
text = LETTERS[1:3]
df <- data.frame(text = text, formula = eqs)
df
#> text formula
#> 1 …Run Code Online (Sandbox Code Playgroud) 是否可以使用灵活的一行脚本来格式化多列?
该示例包括两种不同类型的双精度变量。我想:
使用 flextable 这相对简单,但会变成一个包含更大数据集的钻孔。我看不出有什么方法可以更有效地做到这一点。
我可以使用 dplyr 来预处理数据(尽管逗号格式需要将变量类型从 double 更改为 character)。如果可能的话,我更喜欢在 flextable 中做到这一点。我知道 Huxtable 可以进行多列格式化。用户是否可以创建定制的 set_formatter_type 函数?
set.seed(100)
tib <- tibble(a = letters[1:4],
b = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
c = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
d = runif(4)*sample(c(10000, 1000000, 10000000), 4, replace = TRUE),
e = runif(4),
f = runif(4))
regulartable(tib) %>%
set_formatter(b = function(x) format(round(x, -3), big.mark = ",")) %>%
set_formatter(c = function(x) format(round(x, -3), big.mark …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 R 包“flextable”创建一个“灵活”对象。我需要将相同的列名称放在多个列中。当我将它们放入函数“flextable”中的“col_key”选项时,我收到“重复的 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"))
Run Code Online (Sandbox Code Playgroud)
这是我收到错误的示例代码。
该flextable帮助的细节描述了将新的标头,对每一个新的头名手动键入每个现有的头名,如下所示:
library(flextable)
ft_1 <- regulartable(head(iris))
ft_1 <- set_header_labels(ft_1, Sepal.Length = "SL",
Sepal.Width = "SW", Petal.Length = "PL",
Petal.Width = "PW"
)
ft_1
Run Code Online (Sandbox Code Playgroud)
我怎样才能从一个字符串中添加所有新的标题名称,例如
(names2<-c('SL','SW','PL','PW','SPECIES'))
[1] "SL" "SW" "PL" "PW" "SPECIES"
Run Code Online (Sandbox Code Playgroud)
?
到目前为止,我已经管理了一个非常hacky的解决方案:
names(names2)<-names(ft_1$header$dataset[1,])
ft_1$header$dataset[1,]<-names2
Run Code Online (Sandbox Code Playgroud) 我正在使用 RMarkdown 创建一个 Word 文档(我需要输出为 .docx 格式)。
\n\n我想使用flextable(或任何其他包)来正确格式化我的标题。
\n\n我正在尝试让希腊符号 delta (\xe2\x88\x86)正确显示......这似乎是可能的,因为在此处的帮助页面中(https://davidgohel.github.io/flextable/articles/format .html#display-function)作者成功使用 \\u03BC 插入“\xce\xbc”符号(如果我使用他的代码,我也可以,如下),但我无法让它为 delta 工作使用\\u2206或\\u0394,如果我用下面的代码替换 \\u03BC 。我正在使用的代码生成此表,但我想用增量替换突出显示的位。
\n\n\n\n这就是我尝试时得到的结果,例如\\u2206。
有什么建议么?
\n\nlibrary(flextable)\nif( require("xtable") ){\n mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4)\n mat <- xtable(mat)\n ft <- xtable_to_flextable(x = mat, NA.string = "-")\n print(ft$col_keys)\n ft <- flextable::display(ft, i = 1, col_key = "X1", \n pattern = "{{val}}{{pow}}", part = "header",\n …Run Code Online (Sandbox Code Playgroud) 我正在构建flextable对象来显示表格,有时我想在第一列中添加一个或多个缩进,在其中显示一些行的名称。
接下来我分享一些代码来模拟一些数据并提供一个可重现的示例。我的问题的真正出发点是ft(表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" = …Run Code Online (Sandbox Code Playgroud) 我一直在使用 officedown 来编织到 docx。我遇到了一个问题,我必须在表中创建所需的上标,如下所示

这让我回顾了创建表格的所有方法。我没有在这里输入所有内容,而是在下面创建了一个 Rmd 文档,其中包含所有问题。我很想知道是否有人有任何意见或建议。我的目标很简单。我们想要一个导出到 docx 的表
请在此处找到带有示例的详细 Rmd
对于 Rmd 文档的长度,我深表歉意,但我想详细展示我试图做的事情以促进答案和建议
例如我正在使用虹膜数据:
library(flextable)
library(officer)
library(magrittr)
ft_test <- head(iris) %>% flextable() %>%
colformat_num(j = c("Sepal.Length", "Sepal.Width",
"Petal.Length", "Petal.Width"), digits = 1)
Run Code Online (Sandbox Code Playgroud)
如果我希望有百分比格式的“Petal.Width”值,正确的语法是什么?我找不到 colformat_percent 函数。有没有办法使用flextable语法来弥补它?
我想尝试将弹性对象导出到 Excel 电子表格,但我找不到任何解决方案。根据此文档(https://davidgohel.github.io/flextable/reference/index.html),该包允许用户将可格式化对象导出为 pdf、文档和 ppt。
一种解决方法是将其保存为其中一种格式,然后将其保存到 Excel 电子表格中,但我正在寻找一种不太黑客且可扩展到许多表的解决方案。
我有数据如下:
dat <- structure(list(rn = c("type_A", "type_B", "type_C"
), freq = list(c(0, 0, 0, 5, 7, 16, 28), c(2, 1, 0, 5, 0, 8),
c(0, 0, 3, 5, 12, 53, 73)), colspan = list(c(`25` = 1, `100` = 2,
`250` = 1, `500` = 1, `1000` = 1, Infinity = 3, SUM = 1), c(`25` = 1,
`100` = 2, `250` = 1, `500` = 1, Infinity = 4, SUM = 1), c(`25` = 1,
`50` = 1, `100` = …Run Code Online (Sandbox Code Playgroud)