2017-07-02 14 views
0

現在、Windowsコンピュータで作業しており、knitrとRcppとのやり取りに問題があります。KnitrとRcppエラーが発生しました。共有ライブラリを構築中に発生しました。

私はRstudio上でそれを実行したときに私のコードは正常に動作しますが、私はhtmlファイルを作成するためにknitr使用しようとすると、私はエラーを取得:ので、私はその行を削除すると、HTMLファイルを作成enter image description here

作品Rcppパッケージやknitrパッケージで問題にはならないようです。

別の注意として、コードではsourceCPP関数を使用したことはありませんが、cppFunction(Cコードを文字列として使用する変数)は使用しませんでした。その後

library(Rcpp) 
library(RcppArmadillo) 

ccode = " 
NumericMatrix rand_mat(NumericVector dim){ 
    IntegerVector v = seq_len(2) - 1; 
    int N = dim[0]; 
    int M = dim[1]; 
    NumericMatrix Y(N,M); 
    for(int i=0;i<N;i++){ 
    for(int j=0;j<M;j++){ 
     Y(i,j) = sample(v,1,true)[0]; 
    } 
    } 
    return Y; 
} 
" 

cppFunction(code=ccode,depends="RcppArmadillo") 

RMDファイル:必要に応じて

が、私は以下の簡単な例は、スクリプト "cppcode.R" を作成し

#This is an example 
```{r} 
source("cppcode.R") 
rand_mat(c(3,3)) 
``` 

作品だけで、Rstudio上に線を実行する場合はニットボタンを押すと同じエラーが表示されます。

+0

'cppFunction'は、' sourceCpp'関数を呼び出します。いくつかのコードを私たちに提供すると、もっと役に立つかもしれません。 – Consistency

+0

質問を簡単な例で編集しました。 – Freguglia

+0

何を言いたいのか分かりません。私は(r)マークダウンと実際のrcppコード_allを使ってビーマースライドを書きます。 –

答えて

0

よく、hereを見た後、私はそれがRtoolsで何かであるかもしれないことを発見しました。 knitrで実行されるRセッションは、「Rtoolsを見つける」柔軟性が低いので、うまくいかないようです。これが全然意味があるのか​​どうかはわかりません。

誰かがこの問題を抱えている場合は、cppFunction(RBuildToolsの場所がPATHにあることを確認してください)を呼び出す前に、以下の行をRmdファイルに追加してください。それはコンパイルしようとする前にRtoolsを見つけるでしょう。

library(devtools) 
find_rtools() 

他の誰かが、何が起こっているのより技術的な説明があり、どのように私はすべてのファイルにこれらの行を追加する必要はありませんそれを修正する場合、私は感謝します。

+1

リンクした投稿を読んだことがありますか?私はそれの中であなたが望む技術的な説明を提供しました。 (最初の段落と2番目の段落を必要な永続的な修正と共に参照してください)。要するに、_Rtools_のインストールが適切に行われていませんでした。 http://thecoatlessprofessor.com/programming/rcpp/install-rtools-for-rcpp/ – coatless

+0

申し訳ありませんが、最初は注意深く読んでいませんでしたが、問題の原因が明らかになったと思います。パスに変数を追加しても、最初は修正されませんでしたが、RBuildToolsフォルダを削除しました(これはRtoolsをアンインストールしていると仮定しています)、Rtoolsのパスエントリを削除してガイドに従って再インストールしました。ありがとうございました。 – Freguglia

関連する問題