私が尊敬する多くのデータ アナリストはバージョン管理を使用しています。たとえば、次のようになります。
- http://github.com/hadley/
- コメントを見るhttp://permut.wordpress.com/2010/04/21/revision-control-statistics-bleg/
ただし、git などのバージョン管理システムを導入する価値があるかどうかは評価中です。
簡単な概要:私は社会科学者で、研究出版物のデータを R で分析しています。現在、R パッケージは作成していません。プロジェクト用の R コードには、通常、データの入力、クリーニング、操作、分析、および出力生成のための数千行のコードが含まれています。出版物は通常、LaTeX を使用して作成されます。
バージョン管理に関しては、私が読んだ限りでは多くの利点がありますが、それらは単独のデータアナリストにとってはあまり関係がないようです。
- バックアップ:バックアップシステムは既に導入されています。
- フォークと巻き戻し:私はこれをする必要性を感じたことはありませんが、それがどのように役立つかはわかります(たとえば、同じデータセットに基づいて複数のジャーナル記事を準備している場合、毎月更新されるレポートを準備している場合など)。
- コラボレーション:ほとんどの場合、私は自分でデータを分析しているので、バージョン管理によるコラボレーションのメリットは得られません。
バージョン管理の導入には、次のような潜在的なコストもいくつかあります。
- バージョン管理システムを評価して学ぶ時間
- 現在のファイル管理システムよりも複雑になる可能性がある
しかし、まだ何かが欠けているような気がします。バージョン管理に関する一般的なガイドは、データ アナリストよりもコンピューター サイエンティスト向けに書かれているようです。
したがって、具体的にはデータアナリストに関連して上記に挙げたような状況の場合:
- バージョン管理は労力をかけるだけの価値があるのでしょうか?
- バージョン管理を導入することの主な長所と短所は何ですか?
- R を使用したデータ分析のバージョン管理を始めるための適切な戦略は何ですか (例、ワークフローのアイデア、ソフトウェア、ガイドへのリンクなど)?
ベストアンサー1
あなたの質問に対する答えは、間違いなく「イエス」だと思います。バージョン管理システムを使用してファイルを管理する利点は、そのようなシステムを実装するコストをはるかに上回ります。
あなたが提起したいくつかの点について、詳しくお答えしたいと思います。
- バックアップ:バックアップシステムは既に導入されています。
はい、私もそう思います。ただし、仕事に関連する重要なファイルやアクティブなファイルを適切に追跡するために、汎用バックアップ システムに頼ることが適切かどうかについては、検討すべき点がいくつかあります。パフォーマンス面では、次のようになります。
- バックアップ システムはどのくらいの間隔でスナップショットを作成しますか?
- スナップショットの作成にはどのくらい時間がかかりますか?
- スナップショットを作成するときにハード ドライブ全体のイメージを作成する必要がありますか? それとも、重要な更新を受け取った 2 つのファイルだけをバックアップするように簡単に指示できますか?
- バックアップ システムでは、バックアップ間でテキスト ファイルに何が変更されたかを、正確に表示できますか?
最も重要な:
- バックアップはいくつの場所に保存されていますか? それらはコンピューターと同じ物理的な場所にありますか?
- バックアップ システムから単一ファイルの特定のバージョンを復元するのはどれくらい簡単ですか?
たとえば、Mac を所有していて、Time Machine を使用してコンピューターの別のハード ドライブにバックアップします。Time Machine は、何か問題が発生した場合に、奇妙なファイルを回復したりシステムを復元したりするのに最適です。ただし、重要な作業を任せるには不十分です。
バックアップの際、Time Machine はハード ドライブ全体のイメージを作成する必要があり、かなりの時間がかかります。作業を続けると、ファイルがバックアップを開始したときと同じ状態でキャプチャされる保証はありません。また、最初のバックアップが完了する前に、保存したい別のポイントに到達する可能性もあります。
Time Machine バックアップが保存されているハードドライブは私のマシン内にあり、そのためデータが盗難、火災、その他の災害に対して脆弱です。
Git のようなバージョン コントロール システムを使用すると、テキスト エディターで保存を要求するだけで、特定のファイルのバックアップを開始できます。ファイルはイメージ化されて瞬時に保存されます。さらに、Git は分散されているため、作業する各コンピューターにリポジトリの完全なコピーが保存されます。
これは、私の作業が 4 台の異なるコンピューターにミラーリングされていることを意味します。天災でもない限り、ファイルとデータが破壊される可能性はなく、その場合でも、私はあまり気にしないでしょう。
- フォークと巻き戻し:私はこれをする必要性を感じたことはありませんが、それがどのように役立つかはわかります(たとえば、同じデータセットに基づいて複数のジャーナル記事を準備している場合、毎月更新されるレポートを準備している場合など)。
私もソロ活動家なので、あまりフォークしません。しかし、巻き戻しオプションがあることで節約できた時間だけで、バージョン管理システムの学習に費やした投資を何度も回収できました。あなたは、これを行う必要性を感じたことがないと言っていますが、現在のバックアップ システムでファイルを巻き戻すことは、本当に苦痛のない、実行可能なオプションだったのでしょうか?
場合によっては、レポートが 45 分前、1 時間前、または 2 日前の方が見栄えが良かったこともあります。
- コラボレーション:ほとんどの場合、私は自分でデータを分析しているので、バージョン管理によるコラボレーションのメリットは得られません。
はい、しかし、プロジェクトで他の人と共同作業することになった場合に不可欠となる可能性のあるツールを学ぶことになります。
- バージョン管理システムを評価して学ぶ時間
これについてはあまり心配しないでください。バージョン管理システムはプログラミング言語のようなもので、習得する必要のあるいくつかの重要な概念があり、残りは単なる構文上の糖衣です。基本的に、最初に習得するバージョン管理システムには最も多くの時間を費やす必要があります。別のシステムに切り替えるには、新しいシステムが重要な概念をどのように表現するかを習得するだけで済みます。
人気のあるシステムを選んで、それを実行してください。
- 現在のファイル管理システムよりも複雑になる可能性がある
Projects
データ分析活動に関連するすべてのフォルダとファイルを含むフォルダが1つありますか?もしあるなら、バージョン管理を適用すると、ファイルシステムの複雑さがちょうど 増加します0
。プロジェクトがコンピュータ上に散らばっている場合は、バージョン管理を適用する前にそれらを一元化する必要があります。減少ファイルの管理の複雑さ - 結局のところ、そのためにDocuments
フォルダーがあるのです。
- バージョン管理は労力をかけるだけの価値があるのでしょうか?
はい!大きな元に戻すボタンがあり、USB ドライブの紛失などを心配することなく、マシン間で作業を簡単に転送できます。
2 バージョン管理を導入することの主な長所と短所は何ですか?
私が考えられる唯一の欠点は、ファイル サイズがわずかに大きくなることですが、最新のバージョン管理システムは圧縮と選択的な保存によって非常に優れた機能を実現できるため、これはほとんど問題になりません。
3 R を使用したデータ分析のバージョン管理を始めるための適切な戦略は何ですか (例、ワークフローのアイデア、ソフトウェア、ガイドへのリンクなど)?
データやレポートを生成するファイルは、選択的にバージョン管理下に置いてください。 などを使用している場合はSweave
、.Rnw
ファイル自体を保存し、.tex
そこから生成されるファイルは保存しないでください。再取得が面倒な場合は、生データを保存します。可能であれば、生データの変更を保存するのではなく、データを取得するスクリプトと、データをクリーンアップまたは変更するスクリプトをそれぞれ作成して保存してください。
バージョン管理システムを学ぶには、Gitとこのガイドそれに。
以下の Web サイトには、Git で特定のアクションを実行する場合に役立つヒントやコツも掲載されています。