2

これがばかげた質問である場合は申し訳ありませんが、knitrでR関数をループする方法を知っている人はいますか?これまでの私の問題は、変数をラテックスからR関数に渡すことです。私はこのようなことをしようとしています:

\documentclass{article}
\usepackage{forloop}
\newcounter{ind}  
\begin{document}

%Simple R function:
<<simpleRFun, results='asis' ,echo=FALSE>>=
simpleRFun = function(ind){
  set.seed(ind) ;
  plot(runif(100)) ;
}
@

%Run the function for value of 1
<<>>=
simpleRFun(1)
@

%Run the function for value of 2
<<>>=
simpleRFun(2)
@

%Loop over values of 1 and 2:
\forloop{ind}{1}{\value{ind} < 3}{
   \arabic{ind}
}

%Loop over values of 1 and 2 and pass to R function:
%Everything runs fine until this line:
\forloop{ind}{1}{\value{ind} < 3}{
<<>>=
simpleRFun(ind)
@
}

\end{document}

次のエラーが発生します。

Runaway argument?
 #### Error: object 'ind' not found \end {verbatim} \end {kframe} \end \ETC.
./knitr-minimal.tex:97: Paragraph ended before \@xverbatim was complete.
<to be read again> 
                   \par 
l.97 }

助けてくれてありがとう。

4

1 に答える 1

3

あなたがやろうとしていることができるとは思いません(少なくとも、あなたがやろうとしている方法では)。このknitr関数は、LaTeX コードで何もせずにすべての R コードを実行し、結果に対して LaTeX を使用し、R 部分に対して R を実行しません。

ループをやり直して R でループを実行し、ループknitrの結果を LaTeX に入れることはできますか?

それか、R 部分を実行する LaTeX の拡張機能が必要です。

于 2012-07-03T20:02:38.177 に答える