1. ホーム
  2. git

[解決済み] 一人データアナリストのためのRとバージョン管理【終了しました

2022-04-25 22:51:32

質問

私が尊敬する多くのデータアナリストは、バージョン管理を利用しています。 例えば

しかし、gitのようなバージョン管理システムを採用することに意義があるのか、評価中です。

簡単に概要を説明します。 私は社会科学者で、研究発表のためのデータ分析にRを使用しています。 現在、Rのパッケージは制作していません。 私のRコードには、データ入力、クリーニング、操作、分析、出力生成など、通常数千行のコードが含まれます。 出版物は通常、LaTeXを使って書かれています。

バージョン管理については、多くの利点があることを読みましたが、単独のデータ分析者にはあまり関係がないように思われます。

  • バックアップ すでにバックアップ体制が整っている
  • フォークと巻き戻し 必要性を感じたことがない。 しかし、私はそれがどのように有用であるかを理解することができます(例えば、あなたが複数の 同じデータセットに基づいてジャーナル記事を作成する場合。 毎月更新されるものなど)
  • コラボレーション ほとんどの場合、私は 自分自身でデータ分析をしているため を得ることはできないでしょう。 バージョン管理によるメリット

また、バージョン管理の導入には、いくつかのコストがかかる可能性があります。

  • バージョン管理システムの評価と習得にかかる時間
  • 現在使用しているファイル管理システムより複雑化する可能性があること

しかし、まだ何か足りないような気がしています。 バージョン管理に関する一般的なガイドは、データアナリストよりもコンピュータ科学者に向けて書かれているようです。

したがって、具体的には データアナリストに関連する 上記と同様の状況において

  1. バージョン管理は労力に見合うか?
  2. バージョン管理を導入する主な長所と短所は何ですか?
  3. バージョン管理を始めるための良い戦略とは? Rを使ったデータ解析の例(例、ワークフローのアイデア、ソフトウェア、ガイドへのリンクなど)?

どのように解決するのですか?

バージョン管理システムでファイルを管理することのメリットは、そのようなシステムを導入するコストをはるかに上回ります。

ご指摘の点については、具体的にお答えしていきたいと思います。

<ブロッククオート
  • バックアップ すでにバックアップ体制が整っている

しかし、仕事に関連する重要かつアクティブなファイルを適切に追跡するために、汎用のバックアップシステムに依存することの妥当性については、いくつか検討すべき点があります。パフォーマンス面では

  • バックアップシステムは、どのような間隔でスナップショットを取得していますか?
  • スナップショットの作成にかかる時間は?
  • それとも、重要な更新を受けたばかりの2つのファイルだけをバックアップするように簡単に指示できるのでしょうか?
  • バックアップシステムは、1つのバックアップから次のバックアップまで、テキストファイルの何が変わったかをピンポイントで示すことができますか?

そして最も重要なこと。

  • バックアップは何カ所に保存されていますか? それらはあなたのコンピューターと同じ物理的な場所にありますか?
  • バックアップ・システムから、あるファイルのあるバージョンを復元するのは簡単ですか?

例えば、私はMacを使っていますが、Time Machineを使ってコンピュータ内の別のハードディスクにバックアップしています。 Time Machineは、ちょっとしたファイルを復元したり、物事がめちゃくちゃになったときにシステムを復元したりするのに最適です。 しかし、私の重要な仕事を任せられるほどのものではありません。

  • バックアップの際、Time Machineはハードディスク全体をイメージ化する必要があり、かなりの時間がかかる。 作業を続けても、バックアップを開始したときの状態でファイルがキャプチャされる保証はない。 また、最初のバックアップが終了する前に、保存したい別のポイントに到達する可能性もあります。

  • Time Machineのバックアップ先のハードディスクが自分のマシンの中にあるため、盗難や火災などの災害に対して脆弱である。

Gitのようなバージョン管理システムを使えば、テキストエディタで保存を要求する程度の手間で、特定のファイルのバックアップを開始することができ、ファイルは瞬時にイメージ化され保存されます。 さらに、Gitは分散されているので、私が作業している各コンピュータにリポジトリの完全なコピーがあります。

これは、私の仕事を4台のコンピュータでミラーリングしているのと同じことです。天災でもなければ、私のファイルやデータは壊れませんが、その時点では、おそらくあまり気にしないでしょう。

<ブロッククオート
  • フォークと巻き戻し 私はこの作業の必要性を感じたことはありませんが、便利なことはわかります(例えば、同じデータセットに基づいて複数のジャーナル記事を作成している場合、毎月更新される報告書を作成している場合など)。

ソロ活動をしている私も、そこまでフォークをすることはありません。 しかし、巻き戻しのオプションがあることで節約できた時間は、バージョン管理システムを学ぶための投資を何倍にもして返してくれました。 あなたは、これを行う必要性を感じたことがないと言いますが、現在のバックアップシステムでファイルを巻き戻すことは、本当に苦痛のない、実現可能なオプションだったのでしょうか?

45分前、1時間前、2日前のレポートの方が良く見えることもあります。

<ブロッククオート
  • コラボレーション ほとんどの場合、私は 自分自身でデータ分析をしているため を得ることはできないでしょう。 バージョン管理によるメリット

しかし、プロジェクトで他の人と共同作業をすることになった場合、必要不可欠なツールを学ぶことができます。

<ブロッククオート
  • バージョン管理システムの評価と習得に要する時間

あまり心配しないでください。バージョン管理システムはプログラミング言語のようなもので、学ぶべきいくつかの重要なコンセプトがあり、残りは単なる構文上の糖分です。 基本的に、最初に学んだバージョン管理システムが最も時間を費やし、別のバージョン管理システムに切り替えるには、新しいシステムが重要な概念をどのように表現しているかを学ぶだけでよいのです。

人気のあるシステムを選んで、それを目指してください。

<ブロッククオート
  • 現在使用しているファイル管理システムより複雑化する可能性があること

一つのフォルダ、例えば Projects データ分析に関連するすべてのフォルダとファイルが含まれていますか? もしそうなら、そこにバージョン管理を導入すると、ファイルシステムの複雑さが増すことになります。 0 . プロジェクトがコンピュータに散らばっている場合、バージョン管理を適用する前にそれらを一元化する必要があり、これは最終的に 減少する そのため、ファイル管理の複雑さを解消するために Documents フォルダーがあります。

<ブロッククオート
  1. バージョン管理は労力に見合うか?

はい!巨大なアンドゥボタンがあり、USBメモリを紛失するなどの心配をせずに、マシンからマシンへ簡単に仕事を移すことができます。

2 バージョン管理を導入する主なメリットとデメリットは何ですか?

しかし、最近のバージョン管理システムは、圧縮と選択的保存で非常に素晴らしいことができるので、これはかなり無意味なポイントです。

<ブロッククオート

3 Rによるデータ解析のためのバージョン管理を始めるための良い戦略(例、ワークフローのアイデア、ソフトウェア、ガイドへのリンクなど)は何でしょうか?

データやレポートを生成するファイルをバージョン管理下に置き、選択的に管理すること。 もし、以下のようなものを使っているのであれば Sweave を保存してください。 .Rnw ファイルから生成される。 再取得が面倒な場合は、生データを保存する。 可能であれば、生データの変更を保存するのではなく、データを取得するスクリプトと、それをクリーニングまたは修正するスクリプトを書いて保存する。

バージョン管理システムの学習に関しては、Gitを強くお勧めしますし このガイド を追加しました。

これらのウェブサイトには、Gitで特定のアクションを実行することに関連する素晴らしいヒントやトリックもあります。