問題タブ [rcpp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R2.15.0へのRcppパッケージのインストール
Rに「Rcpp」パッケージをインストールする際に問題が発生しました。installコマンドはすべてのパッケージで機能しましたが、このパッケージでは機能しませんでした。Rエラーは次のとおりです。
パッケージ「Rcpp」は使用できません(Rバージョン2.15.0の場合)
WindowsVistaを使用しています。助けてください。
r - Rcpp の参照渡しと値渡し
経由で Rcpp 関数を最初に突き刺したところinline
、速度の問題が解決されました (Dirk に感謝します!):
負の値をゼロに置き換えます
初期バージョンは次のように見えました。
しかし、呼び出されると、出力がcpp_if(p)
上書きされ、意図したとおりではありませんでした。p
したがって、参照渡しであると想定しました。
そのため、次のバージョンで修正しました。
これはうまくいったようです。しかし、元のバージョンを R に再ロードしても、元のバージョンは入力を上書きしなくなりました (つまり、まったく同じコードが入力を上書きしなくなりました)。
この動作を再現しようとして一貫性のない結果が得られたのは私だけではありません。
https://chat.stackoverflow.com/transcript/message/4357344#4357344
何が起きてる?
r - インラインでのC++の使用から独自のRパッケージの作成に移行するにはどうすればよいですか?
ここで起こっていることは2つあります。(1)Rcppとその仲間を使って、Rコードを高速化する方法を学んでいるところです。(2)これまでRパッケージを作成したことがありません。
私はinline
ダウンを使用しています。素晴らしいパッケージ。大好きです。ただし、で開発したコードを使用してRパッケージを作成することはできないようinline
ですpackage.skeleton
。
最小限の例を次に示します。
ステップ1:Rスクリプトを作成する
ステップ2:Rパッケージとしてビルドする
新しいRセッションの実行:
次にman/*.Rd
、Rは「正常に機能する」デフォルトを設定しないため、ファイルを削除します。
そして実行します:
ドキュメントの欠落について不満を言う人を除いて、すべて正常に完了します。
ステップ3:試してみる
そして、新しいRセッションで試してみてください。
失敗します。私の訓練されていない目には、次のように思われます。
- コンパイルされたコードは
inline
、*。package.skeletonによってディレクトリスケルトンの「右」部分にコピーされて、後でRビルドプロセスによってコンパイルされることはありません。 - 'code_files'引数が失敗しても、パッケージのロード時にRがこれらの*.Rファイルをソースすることはありません。
これについてさらに考えると、(2)は、ユーザーがパッケージをロードするたびにコードをコンパイルする必要があるため、非常に悪い考えのように思われます。それは、バイナリのみのパッケージを必要とするすべてのユーザーを除外し、単に本当に非効率的です。
(1)技術的には可能のようですが、Rcppメーリングリストで説明されているように、一連の自動マジックコンバーター機能を実装する価値はありません。
だから、質問:
誰かが提供されたサンプルコードを取得してそれをRパッケージに変換する正しい方法のウォークスルーを教えてもらえますか?
既存のドキュメントを理解するには、少し新しすぎます。FWIW、将来的には役立つと思います!
r - R: R を Eurequa に接続、Rcpp コンパイル エラー
R 内から Eurequa を実行しようとしています。 http://code.google.com/p/eureqa-api/ 以下のコードを使用していますが、コンパイル エラーが発生します。
あなたの助けに感謝します。
linux - Rcppのコード内に「ライブラリ(RgoogleMaps)」を配置するには?
上記のコードを配置
library(RgoogleMaps)
して内部に配置する方法は?
png (filename="Rg.png", width=480, height=480)
私はそれを次のように実行します:R CMD SHLIB rtest.cpp
Rcpp
のバージョンは0.9.13
私は試した:
R CMD SHLIB -lRgoogleMaps rtest.cpp
その結果:
linux - Linux で g++ を使用して RInside プログラムをコンパイルする
RPM (Yast を使用) を介して R をインストールしました。
rinsidetest.cpp
コンパイルしたいファイル ( ) には次のものが含まれています。
コンパイル方法は次のとおりです。
R 情報:
RInside
バージョン:0.2.6
Rcpp
バージョン:0.9.13
この問題の回避策はありますか? それとも、rpm インストールを削除して、ソースからコンパイルしてすべてを開始する必要がありますか?
編集
rcpp - Rcpp モジュール c++ オブジェクト ファイナライザー
オブジェクトファイナライザーを指定すると、この Rcpp モジュールが公開された c++ クラスをコンパイルしないのはなぜですか? 動作するバージョンを提供できますか?
Rcpp モジュールのチュートリアルから: class_ の .finalizer メンバー関数を使用して、ファイナライザーを登録できます。ファイナライザは、ターゲット クラスへのポインタを取り、void を返す自由な関数です。ファイナライザはデストラクタの前に呼び出されるため、ターゲット クラスの有効なオブジェクトで動作します。操作の実行、リソースの解放などに使用できます... C++ オブジェクトをカプセル化する R オブジェクトがガベージ コレクションされると、ファイナライザーが自動的に呼び出されます。
r - Rcpp条件付きのNA値
Rcppの条件に問題があります。私の問題を説明する最良の方法は、例を通してです。
私の理解でNA_REAL
は、はRcppの実数NA_Integer
のNA値を表し、整数のNA値を表します。上記の条件が与えられた場合にtrueを返さない理由がわかりませんz
。
r - Windows固有のインクルードでRcppを使用する
Rcppを使用して、WindowsのOSレベルのものにアクセスするC++コードを作成しようとしています。windows.h
またはを含めるとすぐにshlobj.h
、大量のコンパイルエラーが発生します。このコードを実行すると機能するので、基本のいくつかが正しく理解されていることがわかります。しかし、Windows関連の#include
行のコメントを外すと、機能しません。
注:これをRStudioで実行すると、コンソールからの出力がcout
表示printf
されますが、Windows RGuiから実行すると、出力が表示されません。これは、RGuiがテキスト出力を処理する方法と関係があると思います。
これらのインクルード行のコメントを外すと、次のようなエラーが発生します。
... 等々
これを機能させるためのヒントはありますか?
更新:エラーの一部を取り除くことができましたが、一部は残っています。
また、 http://tolstoy.newcastle.edu.au/R/e2/devel/06/11/1242.htmlRealloc
からのアドバイスに従って、エラーを確認しました。
を次のinc
ように置き換える必要があります。
-fpermissive
この質問のように、コンパイラに渡すことで他のエラーも取り除きました: Rcppとインラインを使用してg ++コンパイラフラグを設定するにはどうすればよいですか?
しかし、まだいくつかのエラーがあります: