2

次の構造のドキュメントがあります。

\documentclass[11pt]{article}

\begin{document}
\title{Something}
\author{Andreas}
\date{May 8th, 2013} \maketitle

\section{Introduction}
\paragraph{...}

<<>>=
2+2
@

<<>>=
require('tm')
@

\begin{itemize}
  \item{asdf}
\end{itemize}

some text here.

\section{Intro}

More text.

\section{Other Stuff}

<<>>=
pdf <- readPDF(PdftotextOptions = '-layout')
@

<<eval=FALSE>>=
text <- pdf(elem = list(uri = file.name),
            language = 'en',
            id = 'id1')
@

\end{document}

R で次のコマンドを実行すると、次のエラーが発生します。

knit('test.rnw')

processing file: test.rnw
  |.......                                                          |  11%
  ordinary text without R code

  |..............                                                   |  22%
label: unnamed-chunk-1
Quitting from lines 12-13 (test.rnw) 
Error in pdf_doc(file, cache = FALSE) : 
  'file' must be a character string or a file/raw connection

このエラーを理解できず、問題を一貫して再現できないようです。空白のドキュメントから始めて、正常に動作する R コードの一部を追加しました。次に、適切にコンパイルを停止するポイントに到達します。その後、最近追加されたコードのチャンクを削除できるように見えますが、それでも同じエラーが発生します。

セッション情報:

R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] tm_0.5-8.3 knitr_1.2 

loaded via a namespace (and not attached):
[1] digest_0.6.3   evaluate_0.4.3 formatR_0.7    slam_0.1-28    stringr_0.6.2 
[6] tools_3.0.0   

助言がありますか?さらに情報が必要な場合はお知らせください。ありがとうございました。

4

1 に答える 1

4

あなたの質問は完全に再現できるわけではありませんが、何が起こっているかを潜在的に示しています。file.nameコマンドに渡される変数がありますpdf()が、knitr はそれを見つけることができません。また、knitr ドキュメントで定義されていないため、コードを実行しようとしても実行できません。

Knitr ファイルをコンパイルすると、R は新しい空の環境で開始します。以前にワークスペースに設定file.nameしたことがある場合、knitr はそれを自動的にロードしません。使用する前に、チャンクに設定する必要があります。

<<>>=
require('tm')
file.name <- #something#
@

ファイルをロードしている場合は、絶対パスをいじったり、ファイルを機能させる必要があるかもしれませんsetwd()

アップデート:

実際に評価しようとしているわけではないtextので、未定義file.nameは問題になりません。pdf()主な問題は、組み込み関数の名前を変更していることだと思います。を使用するとエラーが発生しますpdf <- readPDF(PdftotextOptions = '-layout')が、 のような別の変数名を使用すると一貫してコンパイルされますpdf.asdf <- readPDF(PdftotextOptions = '-layout')

于 2013-05-07T16:38:51.767 に答える