gpt4 book ai didi

r - 指定 knit2html 的输出路径

转载 作者:行者123 更新时间:2023-12-02 04:01:46 25 4
gpt4 key购买 nike

我在为 knit2html 或其依赖函数生成的 html 指定输出路径时遇到问题。我想在调用 knit2html() 时指定“outfile”,但出现错误,

Error in knit2html(input = "test.Rmd", output = "test-abcd.html") :
object 'outfile' not found

'output' 是 markdownToHTML 的一个参数,我认为它应该可以工作。我在源代码中找不到使用“outfile”的任何地方。

这应该重现我的经历。

library(knitr)
library(markdown)

# a minimal example
writeLines(c("```{r hello-random, echo=TRUE}", "rnorm(5)", "```"),
"test.Rmd")

# this works and outputs to test.html
knit2html(input = "test.Rmd")

# this generates the above error
knit2html(input = "test.Rmd",
output = "test-abcd.html")

# breaking it down into two steps works in this simple case,
# but not in my application. trying to diagnose that difference currently
knit("test.Rmd")
markdownToHTML("test.md",
output="test-abcd.html")

相关版本信息可能有用吗?

sessionInfo()
R version 3.0.0 (2013-04-03)
Platform: x86_64-pc-linux-gnu (64-bit)

other attached packages:
[1] plyr_1.8 knitr_1.2 digest_0.6.3 markdown_0.5.4 xtable_1.7-1 reshape2_1.2.2 scales_0.2.3 ggplot2_0.9.3.1 data.table_1.8.8

最佳答案

首先,感谢您提出了非常清晰且可重现的问题。如果你看一下 knit2html 函数源代码,你就能明白问题所在:

R> knit2html
function (input, ..., envir = parent.frame(), text = NULL, quiet = FALSE,
encoding = getOption("encoding"))
{
if (is.null(text)) {
out = knit(input, envir = envir, encoding = encoding,
quiet = quiet)
markdown::markdownToHTML(out, outfile <- sub_ext(out,
"html"), ...)
invisible(outfile)
}
else {
out = knit(text = text, envir = envir, encoding = encoding,
quiet = quiet)
markdown::markdownToHTML(text = out, ...)
}
}
<environment: namespace:knitr>

如果 text 参数为 NULL(即,如果您提供文件作为输入而不是字符向量),则给定文件将传递给 >knit 函数,以及 markdownToHTML 函数的调用方式如下:

markdown::markdownToHTML(out, outfile <- sub_ext(out, "html"), ...)

因此,在本例中,输出文件名是通过用 html 替换现有文件扩展名来生成的,并且您不能提供自己的输出文件名作为参数。

关于r - 指定 knit2html 的输出路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com