私は、次のファイルcumsum_bounded.cppC++の機能は利用できません
#include <Rcpp.h>
using namespace Rcpp;
//' Cumulative sum.
//' @param x numeric vector
//' @param low lower bound
//' @param high upper bound
//' @param res bounded numeric vector
//' @export
//' @return bounded numeric vector
// [[Rcpp::export]]
NumericVector cumsum_bounded(NumericVector x, double low, double high) {
NumericVector res(x.size());
double acc = 0;
for (int i=0; i < x.size(); ++i) {
acc += x[i];
if (acc < low) acc = low;
else if (acc > high) acc = high;
res[i] = acc;
}
return res;
}
を持っている私は、&リロードを構築し、私の新しい機能をテスト。
cumsum_bounded(c(1, -2, 3), low = 2, high = 10)
[1] 1 0 3
次に、ドキュメントを作成します。 devtools::document()
私がBuild & Reload
になるとすべてが正常にコンパイルされます。
しかし、私はcumsum_bounded(c(1, 2, 3), low= 2, high = 10)
を実行すると、私はエラーを取得:
名前空間を
# Generated by roxygen2: do not edit by hand
export(cumsum_bounded)
更新:
私は上記のように、新しいプロジェクトを作成し、Build & Reload
を使用しない場合関数ではなく、devtools :: loadall()で動作します。しかし、一度そのBuild & Reload
ボタンを押すと、横向きになります。
'document()'を実行したときに更新されたファイルはどれですか? – nrussell
'devtools'というタグを追加するとよいでしょう。' Rcpp'自体が文書化されているように動作するためです。そして、我々は 'devtools'について何も言いません(良いか悪いか)。私は 'Rcpp :: compileAttributes()'を実行するだけです(https://cloud.r-project.org/web/packages/Rcpp/vignettes/Rcpp-attributes.pdf)。 –
@DirkEddelbuettel 'Build&Reload'ボタンは' Rcpp :: compileAttributes() 'を実行します。 – jwenzeslaus