0

R 拡張機能を使用せずに、C で R コマンドを実行するには、次のようにします。

int main() {

   system("R g<- graph(c(0,1,0,4,0,9,1,7,1,9,2,9,2,3,2,5,3,6,3,9,4,5,4,8,5,8,6,7,6,8,7,8),n=10,dir=FALSE)
    plot(g)")

    return(0)
}
4

2 に答える 2

4

system() 呼び出しを使用して R を実行することはできますが、そのようにコマンド ラインに R 関数を貼り付けることはできません。

あなたができることは、Rコードをファイルに書き込んで呼び出すことですsystem("R CMD BATCH foo.R")- 最小限:

main(){system("R CMD BATCH test.R");}

デフォルトでは、R CMD BATCH からの出力グラフィックは PDF ファイルに出力されるため、グラフィック ウィンドウを開いてスクリプトを一時停止する必要があります。

もちろん、test.R ファイルは実行前に C コードで作成でき、一時ディレクトリなどに保存できます。

于 2012-04-16T15:47:11.590 に答える
2

の代替はR CMD BATCHですRscript。C ++とRが緊密に統合されていない問題、つまりRとC ++が使用される明確なフェーズがあり、大量のデータ交換やデータ交換の頻度がない場合、システムコールの使用は非常に単純で堅牢になると思います。

別の方法は、RとC ++を一緒に実行し、それらの間で情報を交換することです。これは、CRANで利用可能なRInsidepacakge使用して実行できます。

于 2012-04-16T16:27:22.940 に答える