将文件中的html表格输入R Markdown,编织到Word?

2024-01-16

我正在处理一个 R Markdown 文件,我们需要能够将其编织为 pdf 和 Word(对于合著者)。我们还生成了回归表stargazer由于数据大小,需要单独计算并创建两个文件:regression_table.tex 和regression_table.html。

当编织为 pdf 时,我可以使用 Latex 命令轻松将表格添加到 R Markdown\input.

\input{"regression_table.tex"}

不过,要编织到 Word,我还没有找到一个简单的等效项\input对于 html 文件。一种选择是在 Word 中手动插入 html 表格文件,这作为一种低技术含量的备份选项效果很好。另一个部分解决方案使用修改后的代码一个相关的问题 https://stackoverflow.com/questions/28189740/insert-html-tables-in-knitr-documents-in-r。使用下面的代码块,我可以编织为 html,然后将 html 文档导入到 Word。这保留了表格格式,但其他格式(例如标题和数字)会变得混乱。

```{r echo = FALSE, results = 'asis'}
tmp <- paste(readLines(here("regression_table.html")), collapse="\n")

cat(tmp)
```

有没有一个简单的等价于\input是否需要文件中的 html 表格与 knitting 到 Word 配合良好?


这不是一个理想的解决方案,但是,使用webshot包,很容易将 html 文件转换为图像文件,然后可以轻松地将其导入到 R Markdown 中knitr::include_graphics。这种方法的三个优点是(1)它自动工作; (2) 格式保存良好; (3) 它可以与其他制表包或任何外部 html 文件(或网页)一起使用。此外,我在顶部添加了一些代码,以便 Rmd 自动合并正确的外部文件(.tex 或 .html),具体取决于我编织为 pdf 还是 word。

请注意,如果您还没有使用过webshot之前,需要运行webshot::install_phantomjs()(我感谢 JacobG 指出了这一点)。

```{r create_output_logicals, include = FALSE}
# https://stackoverflow.com/questions/62389948/knitris-word-output-to-check-if-the-current-output-type-is-word-just-like

is_word_output <- function(fmt = knitr:::pandoc_to()) {
  length(fmt) == 1 && fmt == "docx"
}

# create logical variables that indicate knitting output format 
latex_lgl <- knitr::is_latex_output()
html_lgl  <- knitr::is_html_output()
word_lgl  <- is_word_output()
```

```{r load_packages, include = FALSE}
library(stargazer)
library(webshot)
```

```{r create_table, include = FALSE}    
lm1 <- lm(mpg ~ wt,       data = mtcars)
lm2 <- lm(mpg ~ wt + cyl, data = mtcars)

stargazer(
  lm1, lm2, 
  type   = 'html', 
  header = FALSE, 
  out    = 'regression_table.html'
)

stargazer(
  lm1, lm2, 
  type   = 'latex', 
  header = FALSE, 
  out    = 'regression_table.tex'
)
```

```{r regression_table_word, echo = FALSE, eval = word_lgl}

webshot(
    url  = "regression_table.html", 
    file = "regression_table.png",
    zoom = 2   # doubles the resolution
)

knitr::include_graphics("regression_table.png")

```

```{r regression_tables_tex, results = 'asis', echo = FALSE, eval = latex_lgl}
# if not knit to word document, use latex \input for tex tables
# line spacing assumes YAML/header includes: \usepackage{setspace}
# header-includes: |
#   \usepackage{setspace}\doublespacing

cat(
'\\singlespacing
 \\input{"regression_table.tex"}
 \\doublespacing'
)
```

请注意,表格/图像不会在 Word 中居中。由 webshot 创建的图像用空格填充。如果居中很重要,您需要使用以下任一方法修剪图像cliprect选项中webshot()或使用类似的东西magick封装有magick::image_trim。此外,您可能需要创建 Word 模板 https://stackoverflow.com/questions/49657662/how-can-i-center-image-in-r-markdown-in-knit-word.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件中的html表格输入R Markdown,编织到Word? 的相关文章

  • 我的 CSS 未在 Internet Explorer 11 和 Firefox 中加载!仅适用于 Chrome

    我正在创建一个简单的网页 我的 CSS 只能在 Chrome 中使用 它在 Firefox 和 IE11 中都不起作用 这是我的 HTML h1 b u Adding a new Visitor u b h1 br div class wr
  • 动态表单标签宽度的 CSS

    我目前正在重构我们的表单控制器之一 以便我们可以将其用于面向公众的网站 目前它正在为表单生成表格布局 但我正在尝试使用 CSS 表单来完成它 我正在尝试重现看起来像这样的东西http www stylephreak com uploads
  • R 改变构面的顺序

    我正在尝试将方面的顺序从 BA SLG 更改为 SLG BA 我发现了与此类似的问题 但我认为我的解决方案可能不起作用 因为我已经在Excel中汇总了数据 因此 我的数据框可能会有所不同 无论如何 我尝试实现这个但无济于事 df2 lt f
  • R:单纯形错误:在下标赋值中不允许使用 NA

    对于以下具有目标函数和约束的最小化 boot simplex返回错误 Error in tab pr lt tab pr tab pr pc pv o tab pr NAs are not allowed in subscripted as
  • rvest 函数 html_nodes 返回 {xml_nodeset (0)}

    我正在尝试抓取以下网站的数据框 http stats nba com game 0041700404 playbyplay http stats nba com game 0041700404 playbyplay 我想创建一个表格 其中包
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 在 R 上安装 TDA 包时出错:目标“diag.o”的配方失败

    使用 Ubuntu 16 04 和 R 3 4 1 安装 R 包 TDA 时收到错误消息 它似乎与制作 CGAL diag cpp 和 或 diag o 最后的完整错误打印输出 有关 我仔细看了这个 在 R 上安装 TDA 包时出错 htt
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • 按百分比设置 bootstrap 模态身高

    我正在尝试制作一个带有主体的模态 当内容变得太大时 该主体会滚动 但是 我希望模式能够响应屏幕尺寸 当我将最大高度设置为 40 时 它没有任何效果 但是 如果我将最大高度设置为 400px 它会按预期工作 但不会响应 我确信我只是错过了一些
  • R 数据结构的运算效率

    我想知道是否有任何关于操作效率的文档R 特别是那些与数据操作相关的 例如 我认为向数据框添加列是有效的 因为我猜您只是向链接列表添加一个元素 我想添加行会更慢 因为向量保存在数组中C level你必须分配一个新的长度数组n 1并将所有元素复
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • ggplot2:带有 geom_line 的 x 轴因子不起作用

    我想要一个线图 其中value绘制为函数expt每级一行var 这是我的数据 lines lt expt var value 1 none p 0 183065327746799 2 none p 0 254234138384241 3 n
  • 安装 2.15 后 ggplot2 中的 alpha 通道不起作用

    更新到 R 2 15 后 ggplot 中的 alpha 通道似乎不再起作用 plot rnorm 100 rnorm 100 bg cc000055 pch 21 工作得很好但是 qplot rnorm 100 rnorm 100 col
  • 如何使用plotmath更新ggplot图例标签

    我正在尝试更新ggplot要使用的图例标签plotmath但是 当我这样做时 它将之前组合的图例分成两部分 通过一个例子可能更容易理解 test data and the default plot gives the correct col
  • 如何在R中实现countifs函数(excel)

    我有一个包含 100000 行数据的数据集 我尝试做一些countifExcel 中的操作 但速度慢得惊人 所以我想知道R中是否可以完成这种操作 基本上 我想根据多个条件进行计数 例如 我可以指望职业和性别 row sex occupati
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas

随机推荐

  • 数据更改后 CursorLoader 不更新

    我创建了一个小应用程序 试图了解该应用程序的功能LoaderManager and CursorLoader 课程 我已经实施了LoaderCallbacks
  • 将同步方法包装到可以“等待”的异步方法中

    我有一个同步调用 context User Where u gt u UserID twitterId u Type UserType Show SingleOrDefault 我需要将其包装成一个异步的 我可以使用await关键词 我怎样
  • API网关和微服务通信

    我正在构建微服务架构 我需要沟通方面的帮助 API 网关与服务通信的最佳方法是什么 我的 API 网关将是graphql apollo服务器和服务将是REST APIs 我应该使用 REST 与服务或某些消息系统进行通信吗RabbitMQ
  • 显式脚本结束标记始终转换为自结束标记

    我正在使用 xslt 将 xml 转换为 aspx 文件 在 xslt 中 我有一个脚本标记来包含 jquery js 文件 为了使其能够与 IE 一起使用 脚本标签必须有一个显式的结束标签 由于某种原因 这不适用于下面的 xslt
  • socket.io 是如何工作的? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在使用 socket io 它的
  • DateTime 对象上的不同 timezone_types

    我在 Postgres 上使用 Doctrine2 在一张表中 我有两种不同的日期类型 birthdate date and created at datetimetz 两者都成为 DateTime 对象 但具有不同的timezone ty
  • 为什么 babel-node 不支持 REPL 中的模块加载?

    确定的是babel node 不支持在 REPL 中加载模块 https stackoverflow com questions 36197012 babel node es6 modules arent supported in the
  • 如何在Python中使用线性索引访问二维数组

    我在 MATLAB 中有一段代码 我尝试将该代码转换为 Python 在 MATLAB 中 我可以这样写 x 1 2 3 4 5 6 7 8 9 这只是一个 3x3 矩阵 那么如果我使用x 1 5 MATLAB首先会传递矩阵x转换为 1x9
  • 是否可以使用 Android Animator 为 DialogFragment 条目设置动画?

    我有一个DialogFragment我show 当用户单击我的应用程序上的按钮时 我想设置一个动画来使Z轴旋转DialogFragment当它启动时 即 3d 卡翻转动画 我已经成功使用了windowAnimationStyle和以下样式做
  • firstElementChild 在 Internet Explorer 7 中不起作用...我有什么选择?

    考虑下面的 JavaScript var v if this children length gt 0 v this firstElementChild value 这适用于现代版本的 FireFox 和 Chrome 但是this fir
  • C# 中阻止 Excel 更新屏幕

    我正在使用 VIsual C for Excel 2010 编写一个加载项 该加载项从我们的服务中检索一些数据 并将结果写入特定电子表格的单元格中 但是 我不希望 Excel 显示用值填充单元格 因为这需要花费大量时间 所以我尝试了下面的代
  • 如何使用 VBA 或宏将 Outlook 邮件消息复制到 Excel 中

    我是 VBA 和宏的新手 如果有人帮助我使用 VBA 代码和宏 那将会很有帮助 每天我都会收到大约 50 60 封邮件 其中包含一个标准主题 任务已完成 我已经创建了一条规则 将所有这些邮件移至特定文件夹 任务已完成 每天阅读所有 50 6
  • Matplotlib / PyPlot 中的快速实时绘图

    多年来 我一直在努力在 matplotlib 中实现高效的实时绘图 直到今天我仍然不满意 我想要一个redraw figure函数 实时 更新图形 当代码运行时 并且如果我在断点处停止 将显示最新的绘图 这是一些演示代码 import ti
  • IE 中的多个 CSS 过滤器

    我只是想知道是否可以使用 CSS 在 IE 中应用两个不同的过滤器 所以 我需要使用透明的 PNG 以及一些不透明度div 是否可以同时使用它们 我的透明制造商线如下所示 li item item texture background no
  • android - 包 org.apache.http 不存在 sdk 23 [重复]

    这个问题在这里已经有答案了 我升级到最新的sdk版本23 现在我的一些代码不再工作了 这是我之前用于获取 json 的课程 public class Spots tab1 json static String response null p
  • Angular2路由器通过带有Observable捕获404的Resolve提供Http数据服务

    在我的解析守卫中 我得到一个 Http Observable 以从特定的位置返回用户的 JSONid 我想捕获错误并重新路由到用户概述 如果id不存在 我见过用 Promise 解决这个问题的代码 但没有用 Observable 解决这个问
  • PHP 解析错误:语法错误,PHP 8.1 上的错误消息中出现意外标记“public”

    在 PHP 8 1 中运行时会触发上述错误消息 还没有发现任何明显的地方 即需要更改下面的代码以消除此错误消息 public function process button sid zen session name zen session
  • 递归函数的返回值是“未定义”

    每当我执行此代码片段时 返回前的 console log 都会返回值 23 的 20 倍的数组 但是 console log Check users 0 20 仅返回 未定义 我究竟做错了什么 var users 23 23 23 23 2
  • 如何在 cucumber-jvm 步骤之间传递变量

    为了在步骤之间传递变量 我让步骤方法属于同一类 并使用该类的字段来传递信息 举例如下 Feature Demo Scenario Create user Given User creation form management When Cr
  • 将文件中的html表格输入R Markdown,编织到Word?

    我正在处理一个 R Markdown 文件 我们需要能够将其编织为 pdf 和 Word 对于合著者 我们还生成了回归表stargazer由于数据大小 需要单独计算并创建两个文件 regression table tex 和regressi