[解決済み] 統計解析・報告書作成のためのワークフロー
質問
カスタムレポートの作成に関連するデータ分析のワークフローについて、どなたかお知恵を拝借できませんでしょうか。 ユースケースは基本的にこのような感じです。
-
クライアントからデータ分析を用いたレポート(例:水郷地帯の人口推計と関連地図)を依頼される。
-
アナリストはデータをダウンロードし、データを加工して結果を保存します(単位当たりの人口の列を追加したり、地区の境界に基づいてデータをサブセットするなど)。
-
2)で作成したデータを分析し、目標に近づいたが、さらにデータが必要であることがわかり、(1)に戻る。
-
表や図がQA/QCを満たし、クライアントを満足させるまで繰り返す。
-
表や図版を組み込んだ報告書を作成する。
-
来年、クライアントが再びやってきて、更新を要求する。 これは、仕様が変更されない限り、新しいダウンロードによって上流データを更新し(例えば、昨年の建築許可証を取得する)、"RECALCULATE" ボタンを押すのと同じくらい簡単であるべきです。
今のところ、ディレクトリを立ち上げて、その場しのぎでやっています。 もっと体系的なアプローチが欲しいので、誰かがこれを理解していることを期待しているのですが...。 私は、スプレッドシート、SQL、ARCGIS、R、Unixのツールを組み合わせて使っています。
ありがとうございます。
PS:
以下は、様々な中間データセットへの依存をチェックする基本的な Makefile です (w/w)。
.RData
サフィックス)とスクリプト(
.R
サフィックス)。 Make はタイムスタンプを使って依存関係をチェックするので、もし
touch ss07por.csv
このファイルは、それに依存しているすべてのファイル/ターゲットよりも新しいことがわかり、それに応じてそれらを更新するために与えられたスクリプトを実行します。 これはまだ作業中で、SQL データベースに入れるステップや、sweave のようなテンプレート言語用のステップも含まれています。Make の構文はタブに依存しているので、カットアンドペーストする前にマニュアルを読んでください。楽しんで、フィードバックしてください。
http://www.gnu.org/software/make/manual/html_node/index.html#Top
R=/home/wsprague/R-2.9.2/bin/R persondata.RData : ImportData.R ../../DATA/ss07por.csv Functions.R $R --slave -f ImportData.R persondata.Munged.RData : MungeData.R persondata.RData Functions.R $R --slave -f MungeData.R report.txt TabulateAndGraph.R persondata.Munged.RData Functions.R $R --slave -f TabulateAndGraph.R > report.txt
解決方法は?
私は通常、プロジェクトを4つのピースに分割しています。
- load.R
- clean.R
- func.R
- do.R
load.R:必要なデータをすべて読み込む。通常、これは短いファイルで、ファイル、URL、ODBCからデータを読み込む。この時点でプロジェクトによっては、ワークスペースを
save()
または、次のステップのためにメモリに保存しておくだけです。
clean.R:欠損値の処理、データフレームのマージ、外れ値の処理など、醜いものはすべてここにある。
func.R: 実際の分析に必要なすべての関数が含まれています。
source()
このファイルを作成しても、関数定義を読み込む以外の副作用はないはずです。つまり、このファイルを修正すれば、ステップ1と2を繰り返すことなく、再ロードすることができます。
do.R: func.R で定義された関数を呼び出して分析を行い、チャートと表を作成する。
このセットアップの主な動機は、大きなデータを扱うときに、後続のステップに変更を加えるたびにデータを再読み込みする必要がないようにするためです。また、このようにコードを区分けしておくことで、長い間忘れていたプロジェクトに戻り、load.Rを読んでどのデータを更新する必要があるかを素早く判断し、do.Rを見てどんな分析を行ったかを判断することができるのです。
関連
-
R 描画エラー plot.new() : 図形の余白が大きすぎる
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
R - よくあるエラーとその原因 - 注意事項
-
[R] is.data.frame(x) のエラー : (リスト) オブジェクトを 'double' 型に強制できない。
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] パッケージ 'xxx' は利用できません (for R version x.y.z) 」という警告にどのように対処したらよいですか?
-
[解決済み] 空のdata.frameを作成する
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] Rでオブジェクト(変数)が定義されているかどうかを確認するには?
-
[解決済み] 一人データアナリストのためのRとバージョン管理【終了しました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン