私はRcpp を理解するためにhttp://adv-r.had.co.nz/Rcpp.htmlでガイドに従うことを試みるが、どのRcpp機能が動作する前に、私はいつもdevtools::find_rtools()
を実行する必要があります。 私はなぜhas_devel()= TRUEより前にfind_rtools()を実行する必要がありますか?
library(devtools)
library(Rcpp)
has_devel() # Error: Command failed(1)
# Example from http://adv-r.had.co.nz/Rcpp.html
add <- cppFunction('int add(int x, int y, int z) {
int sum = x + y + z;
return sum;
}')
をすれば、私はエラーを取得し、Rstudioが追加ビルドをインストールするために私を促しツール(ただし、私が「はい」と言うと何も起こらない)。いくつかのmakeコマンドが失敗するようですが、system("where make")
は私のPATHにあるパスを与えます。私はその後、
find_rtools() # True
has_devel() # True
# Try the example again
add <- cppFunction('int add(int x, int y, int z) {
int sum = x + y + z;
return sum;
}')
# Now works
add(1,2,3) # 6
両方のデベロッパーツールとRcppが幸せであるように見えるん 。それはなぜですか、どうすれば修正できるのですか?ここで
は私のPATHの先頭には、
path <- get_path()
head(path, 8)
[1] "F:\\Software\\R-3.3.0\\bin\\x64"
"F:\\Software\\Rtools\\bin"
[3] "F:\\Software\\Rtools\\gcc-4.6.3\\bin"
"F:\\Software\\Python 3\\Scripts\\"
[5] "F:\\Software\\Python 3\\"
"F:\\Software\\Rtools\\bin"
[7] "F:\\Software\\Rtools\\gcc-4.6.3\\bin"
"C:\\Program Files (x86)\\Intel\\iCLS Client\\"
がきれいRセッションからそのパスますか? 'find_rtools()'は、そのセッションのパスのみを変更します。これをdevtoolsを実行することなく永続的に動作させたい場合は、環境変数ダイアログ(Windowsの[スタート]メニュー)でパスを変更してください。 – Thomas
はい、クリーンセッションからのものです。 しかし、どのディレクトリがパスにないのか、Rtoolsには少なくともいくつかのディレクトリがあるようです。 – luoar