2017-05-23 7 views
0

入力データを取り出し、出力データを外部データベース(PostgreSQL)に書き込むことによって、一連の解析を実行することを目標とするRパッケージを構築しようとしています。Rパッケージに属する関数のスケジューリング

具体的には、毎日実行するようにスケジュールされた一連の操作が必要です。したがって、私はRコード(ヘッダ#!/usr/bin/env Rscriptを使用)を使っていくつかのbashスクリプトを書いており、それらをRパッケージのexec/フォルダに保存しました。スクリプトは、R/フォルダ内のパッケージのコア機能をいくつか呼び出します。

この時点で、パッケージをLinuxサーバにインストールしたら、exec/フォルダ内のスクリプトに直接アクセスできるcrontabを設定するにはどうすればよいですか?

このような操作は正しいですか、それともベストプラクティスですか?

答えて

0

私たちはこれを行いますすべての吹き出し時間はです。ここに自宅で私はまた、例えば、CRANberriesのためのいくつかの定期的なcronjobsを持っています。あなたが参照しているexec/フォルダが動作しますが、私の好みの解決方法は、例えばinst/scripts/someScript.Rです。

パッケージライブラリからソフトウエアを作成する必要があるのは、/usr/local/lib/R/site-library/myPackage/scripts/someScript.R$PATHのディレクトリ、たとえば/usr/local/binのディレクトリにする必要があります。

重要な点は、パッケージを更新してもソフトリンクが維持されることです。今、あなたは金色です。あなたが今必要とするのは、あなたのcrontabエントリーがsomeScript.Rを参照していることだけです。 Rscriptlittlerのスクリプトを組み合わせて使用​​します。

+0

ありがとうダーク!確かにそれは継続的な活動ですので、私より経験豊富な人がそれを処理する最善の方法を考案したのかどうか疑問に思っていました。もう一つ質問があります:パッケージがインストールされると、スクリプトは 'inst /'フォルダ内の他のオブジェクトを見て、 'R /'フォルダ内のコードのようにそれらにアクセスすることができます。 'system.file( 'foo/hello.txt'、package = 'my_package')'? –

+0

はい、正確です。このマニュアルの他のパッケージにはたくさんの例があります。 –

関連する問題