有没有办法做到这一点?我试图在flextable中的一个单元格中添加一个文本框和一个按钮.
谢谢
我在安装时遇到了问题Flextable,这似乎是由于gdtools包装所致。看起来gdtools依赖于.dylib文件吗?有任何想法吗?
> install.packages("flextable")
There is a binary version available but the source version is later:
binary source needs_compilation
flextable 0.4.0 0.4.2 FALSE
installing the source package ‘flextable’
trying URL 'https://cran.rstudio.com/src/contrib/flextable_0.4.2.tar.gz'
Content type 'application/x-gzip' length 135276 bytes (132 KB)
==================================================
downloaded 132 KB
Warning in strptime(xx, f <- "%Y-%m-%d %H:%M:%OS", tz = tz) :
unknown timezone 'default/Australia/Melbourne'
* installing *source* package ‘flextable’ ...
** package ‘flextable’ successfully unpacked and MD5 sums checked
** R
** …Run Code Online (Sandbox Code Playgroud) 当我想要的只是 pdf 中的一些漂亮表格时,我感觉自己已经掉进了兔子洞。说来话长,这里是:
我想从 r markdown 将一些表格打印到 PDF 中。我通常使用 Kable,效果很好。话虽这么说,这个表将有一些非常长的值,以及生成的未知数量的列,当我在 kable 中还不知道时,我很难指定哪一列的宽度。不管怎样,这让我变得灵活。
但我在编织 pdf 时遇到了麻烦。我通过其他堆栈答案了解到,flextable 需要保存为图像才能绘制为 pdf。所以我有这样的代码:
ft <- flextable(x)
ft <- autofit(ft)
tf <- tempfile(fileext = ".png")
## Not run:
if( require("webshot2") ){
save_as_image(x = ft, path = "myimage.png")
}
plot(tf)
Run Code Online (Sandbox Code Playgroud)
但一开始它给了我错误,我没有 webshot2 包,所以在遇到一些麻烦后我安装了它(它与我的 R 版本不符(我在 rstudio.cloud 上),然后当我现在尝试运行它,它说
我错过了一些明显的东西吗?如何将弹性表格另存为图像,然后将其绘制在我的 pdf 中?
我还在这里尝试了 Joanna 的解决方案:Is it possible to generated the RTable (FlexTable) in pdf with RMarkdown? r 告诉我找不到函数“as.html”。即使 flextable 和 htmltools 都已加载。
考虑到生成表格的所有代码以及我需要将其编织成 pdf 的事实,提供可重复数据的 PS …
我有一个 flextable(),我想让标题有两种字体大小。主要文本的一种尺寸(例如,20 pt 字体),以及较小的括号文本(12 pt 字体)。这是使整个标题为 20 pt 的代码。
注意:在最终解决方案中,我不希望括号文本成为一个全新的行,除非它可以像下面的示例所示一样接近原始文本。
library(flextable)
library(dplyr)
set_flextable_defaults(font.size = 20) #Works but makes all header size 20
flextable(test) %>%
set_header_labels(values = list(name = "Name", med_score = "Score (Median)", mean_score = "Score (Mean)")) %>%
align(align = "center", part = "header")
Run Code Online (Sandbox Code Playgroud)
编辑:添加图片
这是目前的样子:
这就是我想要的样子:
注意:我在 PowerPoint 中制作了这个目标表。它在很多方面看起来与原始版本不同,因为我没有格式化原始版本。我试图复制的唯一区别是(中值)和(平均值)小于 Score 以及它们位于同一个标题单元格中。
我有一个表,其中包含带有LaTeX格式的列标题(例如,Lower CI$_{95\\%}$)。HTML当我使用或PDF格式渲染表格时knitr::kable,它们显示正确的格式,但使用 逐字打印flextable::regulartable。
不flextable::regulartable处理,或者我缺少指定的LaTeX参数(例如, ) ?如果不支持,最终会支持吗?escape = TLaTeX
它适用于pander,但flextable提供了更好的格式选项(除了明显缺乏LaTeX支持之外)。
如以下 MWE 所示,香蕉数量处的 NA 如何变为空白而不是显示“NA”?我希望数字列像字符列一样工作(请参阅 MWE 中的苹果颜色)。
library(data.table)
library(flextable)
the.data <- data.table(Fruit=c("Apples", "Oranges", "Bananas", "Pears"), Amount=c(4L, 8L, NA_integer_, 2L), Color=c(NA_character_, "Orange", "Yellow", "Green"))
the.ft <- flextable(the.data)
the.ft
Run Code Online (Sandbox Code Playgroud)
一种方法是将数字列转换为字符,但也许有更好的方法。
这是我的数据集
\n\n我想用 flextable 过滤 Shiny 中的产品并得到这样的结果:
\n\n这是我的代码:
\nlibrary(shiny)\n\nmy_data = data.frame(product = rep(c("auto", "boat"),each=2),\n year = c("2009", "2011", "2005", "2019"),\n price = c("10 000", "20 000", "7 000", "60 000"),\n speed = c("220", "250", "70", "140"))\n\n\nui <- fluidPage(\n selectInput("product", "", choices = my_data$product),\n tableOutput("tbl")\n)\n\nserver <- function(input, output, session) {\n output$tbl <- renderTable( {\n out <- subset(my_data, product ==input$product)\n library(flextable)\n flextable(out) # i got error\n })\n}\n\nshinyApp(ui, server)\nRun Code Online (Sandbox Code Playgroud)\n但我收到此错误:无法将类 \xe2\x80\x98"flextable"\xe2\x80\x99 强制到 data.frame
\n我们该如何解决它?一些帮助将不胜感激
\n我想在GWT中为FlexTable添加双击处理程序.
我使用下面的代码:
flexTable.addDoubleClickHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(DoubleClickEvent event) {
}
});
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能获得行索引.
请建议我.
我有一个 flextable,我试图根据百分比数字 > 或小于某个百分比来有条件地格式化百分比数字。这是一个简单的条件格式,所以我不确定为什么它不起作用。我觉得好像我在这里遗漏了一些明显的东西。
下面是一个例子:
myft = structure(list(Name = c("Bob", "Fred", "Joe"), `2020-03-30` = c(96,
100, 36)), row.names = c(NA, -3L), class = c("tbl_df", "tbl",
"data.frame"))
myft = flextable(myft)
myft = bg(myft, i = ~ Name > 50,
j = 2,
bg="red")
myft
Run Code Online (Sandbox Code Playgroud)
此代码生成此图像:
当编织到 html 时,flextable::line_spacing(space = 0) 会执行预期的操作,减少行间距。当编织为 pdf 时,它不会。请参阅下面的代码和丝网印刷。我使用的是 flextable 版本 0.7.3。设置高度也有类似的效果,除了我的一些真实数据在更多行上运行之外,因此设置精确的行高是不行的。由于我的实际数据有条件格式,flextable 比 kableExtra::column_spec() 等更容易。有人知道如何使用 flextable 生成实际减少行间距的 pdf 吗?谢谢!
---
output:
pdf_document:
latex_engine: xelatex
html_document:
df_print: paged
---
```{r, echo = FALSE, message = FALSE}
library(tidyverse)
cars %>%
head(10) %>%
flextable::flextable() %>%
flextable::line_spacing(space = 0,
part = "body",
unit = "mm")
```
Run Code Online (Sandbox Code Playgroud) flextable ×11
r ×8
gwt ×3
r-markdown ×2
dashboard ×1
double-click ×1
font-size ×1
header ×1
java ×1
knitr ×1
line-spacing ×1
pdf ×1
shiny ×1