为什么使用kable_save编写pdf表会导致同名的html表被删除?

时间:2019-01-30 21:11:56

标签: r kable

使用kableExtra :: save_kable,我发现另存为pdf会导致以前保存的具有相同名称的html表被删除。在此示例中:

df <- data.frame(a = c(1:4), b = c(5:8))
df <- kableExtra::kable(df)
kableExtra::save_kable(df, file = "table.html")
kableExtra::save_kable(df, file = "table.pdf")

仅保存table.pdf。

但是,在交换订单后:

df <- data.frame(a = c(1:4), b = c(5:8))
df <- kableExtra::kable(df)
kableExtra::save_kable(df, file = "table.pdf")
kableExtra::save_kable(df, file = "table.html")

两个表都已保存。

这给了我一个解决方法,但是我想知道这种行为是否是设计使然,是否可以在不重新排序代码的情况下进行修改,而我可能并不总是希望这样做。

1 个答案:

答案 0 :(得分:1)

不修改功能就无法更改行为。当您提供ConfigService HTML输入并请求PDF输出时,它将写入HTML文件(覆盖已存在的任何内容),将其转换为PDF,然后删除HTML文件以对其进行清理。 You can see this looking at the code on Githubsave_kable是用于删除文件的R命令)。

一些选项:

  • unlink提交功能请求,并希望他们能够响应。
  • 自行修改代码。 kableExtra函数采用一个可选参数来保留中间save_kable_latex文件,您可以在此处采用相同的方法。
  • 如果您同时需要PDF和HTML,则可以编写一个包装函数,以正确的顺序调用这两个函数,例如
.tex