6

Knit2html またはその依存関数によって生成された html の出力パスを指定するのに問題があります。Knit2html()の呼び出しでoutfileを指定したいのですが、エラーが出てしまい、

Knit2html のエラー (入力 = "test.Rmd"、出力 = "test-abcd.html"):
オブジェクト 'outfile' が見つかりません

「出力」は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
4

1 に答える 1

3

まず、非常に明確で再現可能な質問に感謝します。関数のソース コードを見ると、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に置き換えることによって生成されます。独自の出力ファイル名を引数として指定することはできません。

于 2013-04-29T22:06:24.710 に答える