私が尊重する多くのデータアナリストはバージョン管理を使用しています。例えば:
ただし、gitなどのバージョン管理システムを採用する価値があるかどうかを評価しています。
簡単な概要: 私はRを使用して研究出版物のデータを分析する社会科学者です。現在、Rパッケージは作成していません。通常、プロジェクトのRコードには、データの入力、クリーニング、操作、分析、および出力生成のための数千行のコードが含まれています。出版物は通常、LaTeXを使用して作成されます。
バージョン管理に関して、私が読んだ多くの利点がありますが、それらは単独のデータ分析者にはあまり関係がないようです。
バージョン管理の採用には、いくつかの潜在的なコストも伴います。
しかし、私はまだ何かが足りないと感じています。バージョン管理に関する一般的なガイドは、データアナリストよりもコンピューターサイエンティスト向けです。
したがって、具体的には データアナリストに関連して 上記のような状況では:
あなたの質問に対する答えは圧倒的です。バージョン管理システムでファイルを管理するメリットは、そのようなシステムを実装するコストをはるかに上回ります。
私はあなたが提起したいくつかのポイントに詳細に応答しようとします:
- Backup:バックアップシステムが既に設置されています。
はい、Iも同様です。ただし、作業に関連する重要でアクティブなファイルを適切に追跡するために、汎用バックアップシステムに依存することの妥当性について検討すべきいくつかの質問があります。パフォーマンスの面では:
最も重要な:
たとえば、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で特定のアクションを実行するためのいくつかの素晴らしいヒントとコツもあります。
分析ショップで9年間働き、分析プロジェクトのバージョン管理のアイデアをそのショップに紹介しました。私は明らかにバージョン管理を強く信じています。ただし、次の点を指摘します。
RとLaTeXを使用して経済学の研究を行っており、常にバージョン管理下に置いています。これは、無制限に元に戻すことができるようなものです。 Bazaarを試してください。これは最も簡単に習得して使用できるものの1つです。Windowsを使用している場合は、グラフィカルユーザーインターフェイス(TortoiseBZR)があります。
はい、他のユーザーと作業する場合、バージョン管理には追加の利点がありますが、単独のプロジェクトであっても非常に理にかなっています。
完全を期すために、バージョン管理の採用に関する最新情報を提供すると思いました。
ソロデータ分析プロジェクトのバージョン管理が非常に役立つことがわかりました。
メインバージョン管理ツールとしてgitを採用しました。まず、EclipseでStatETを使用してEgitを使い始めました。現在、私は通常、コマンドラインインターフェイスを使用していますが、RStudioとの統合は非常に優れています。
私は自分の経験についてブログに書きました バージョン管理を設定する データ分析プロジェクトの観点から。
投稿で述べたように、バージョン管理を採用すると、明確化を含むデータ分析プロジェクトについての考え方に多くの副次的な利点があることがわかりました。
今、あなたはおそらくあなたの仕事をあなたがやりたいことをするコードを開発していると考えています。リビジョン管理システムの使用を採用した後は、リポジトリ内のレガシーを書き留め、それに対して素晴らしいインクリメンタルな変更を加えることと作業を考えるでしょう。気分がいい。
間違いをキャッチするためのセーフティネットを持つことは素晴らしいことです。
私はソロJava開発者として働いていますが、まだソース管理を使用しています。何かを継続的にチェックしている場合、何か問題が発生しても1時間以上の作業を失うことはありません。心配することなく実験とリファクタリングを行うことができます。問題が発生した場合は、常に最後の作業バージョンにロールバックできるためです。
その場合は、ソース管理を使用することをお勧めします。学ぶのは難しくありません。
バージョン管理ソフトウェアを使用する必要があります。そうしないと、分析が完全に再現できなくなります。
結果をどこかに公開したい場合、スクリプトを作成した時点で、常にスクリプトのステータスを再構築できる必要があります。レビュアーの1人がスクリプトの1つでエラーを発見したとしましょう。どの結果が影響を受け、どの結果が影響を受けないかをどのように確認しますか?
この意味で、バックアップシステムはおそらく1日に1回しか実行されず、さまざまなバックアップにラベルを適用しないため、十分ではありません。したがって、どのバージョンがどの結果に対応するかわかりません。そして、ファイルを追加する方法と変更をコミットする方法を学ぶだけで十分であれば、vcsの学習は思っているよりも簡単です。
少し先に進んで、Rパッケージを作成する利点を学びましょう!あなたは、数千行のコードを持つプロジェクトを持っていると言いますが、これらはパッケージコードのように構造化または文書化されていませんか?すべての機能のドキュメント、通常のキャッチしにくいエラーの多くのテスト、独自のテストスイートを作成する機能など、パッケージの理想に準拠することで大きな勝利を得ることができます。
パッケージを作成するための規律がない場合、適切なリビジョン管理を行うための規律があるかどうかはわかりません。
バージョン管理は努力する価値がありますか?
大きなはい。
バージョン管理を採用する主な長所と短所は何ですか?
長所:以前に行ったことを追跡できます。あなたが削除した古い段落が必要になるかもしれないので、特にラテックスに便利です!コンピューターがクラッシュしたり、新しいコンピューターで作業したりすると、その場でデータが復元されます。
短所:設定が必要です。
Rを使用したデータ分析のバージョン管理を開始するための優れた戦略は何ですか(例、ワークフローのアイデア、ソフトウェア、ガイドへのリンクなど)?
使い始めてください。私はWindowsでクライアントツールとして亀のSVNを使用し、私の部門にはsvnサーバーがあり、そこにすべてのコードとデータを入れます(そう、あなたもそこにデータを入れます!)。
上記の意見に同意し、「はい、バージョン管理は便利です」と言います。
利点;
ツールセットに関しては、 Git と StatEt および Eclipse を使用しますが、Eclipseを使用する必要はありません。 EclipseのGitプラグイン がいくつかありますが、通常はコマンドラインオプションを使用します。
また、単独のスクリプト作成作業も行っていますが、それによって物事がより複雑になるのではなく、物事がよりシンプルになります。バックアップはコーディングワークフローに統合されており、ファイルシステムの手順を個別に設定する必要はありません。バージョン管理システムの基本を習得するのにかかる時間は、間違いなく十分な時間です。
Dropboxには「ppor man」のバージョン管理機能があり、少し手間をかけるだけで多くの追加の利点が得られます。
(あらゆる種類の)ソロ開発用のバージョン管理は、次の場合に非常に興味深いものです。
これら2つの基本的なバージョン管理機能のいずれかを実行していない場合は、簡単なバックアップツールで十分です。
これらの機能が必要な場合は、(git bundle
たとえば)