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)
}
system() 呼び出しを使用して R を実行することはできますが、そのようにコマンド ラインに R 関数を貼り付けることはできません。
あなたができることは、Rコードをファイルに書き込んで呼び出すことですsystem("R CMD BATCH foo.R")
- 最小限:
main(){system("R CMD BATCH test.R");}
デフォルトでは、R CMD BATCH からの出力グラフィックは PDF ファイルに出力されるため、グラフィック ウィンドウを開いてスクリプトを一時停止する必要があります。
もちろん、test.R ファイルは実行前に C コードで作成でき、一時ディレクトリなどに保存できます。
の代替はR CMD BATCH
ですRscript
。C ++とRが緊密に統合されていない問題、つまりRとC ++が使用される明確なフェーズがあり、大量のデータ交換やデータ交換の頻度がない場合、システムコールの使用は非常に単純で堅牢になると思います。
別の方法は、RとC ++を一緒に実行し、それらの間で情報を交換することです。これは、CRANで利用可能なRInsidepacakgeを使用して実行できます。