gpt4 book ai didi

git - 单独数据分析师的 R 和版本控制

转载 作者:IT王子 更新时间:2023-10-29 01:18:29 24 4
gpt4 key购买 nike

我尊重的许多数据分析师都使用版本控制。
例如:

  • http://github.com/hadley/
  • 见评论 http://permut.wordpress.com/2010/04/21/revision-control-statistics-bleg/

  • 但是,我正在评估是否值得采用 git 等版本控制系统。

    简要概述:
    我是一名社会科学家,使用 R 分析研究出版物的数据。
    我目前不生产 R 包。
    我的项目 R 代码通常包括几千行代码,用于数据输入、清理、操作、分析和输出生成。
    出版物通常使用 LaTeX 编写。

    关于版本控制,我已经阅读了许多好处,但它们似乎与单独的数据分析师不太相关。
  • 备份:我已经有一个备份系统。
  • fork 和倒带:我从来没有觉得有必要这样做,
    但我可以看到它是如何有用的(例如,您正在准备多个
    基于相同数据集的期刊文章;你正在准备一份报告
    每月更新等)
  • 合作:大部分时间我都是
    自己分析数据,因此,我
    不会得到合作
    版本控制的好处。

  • 采用版本控制还涉及一些潜在的成本:
  • 是时候评估和学习版本控制系统
  • 与我当前的文件管理系统相比可能会增加复杂性

  • 但是,我仍然觉得我错过了一些东西。
    版本控制的一般指南似乎更多地针对计算机科学家而不是数据分析师。

    因此,特别是在与上述情况类似的情况下与数据分析师相关:
  • 版本控制值得付出努力吗?
  • 采用版本控制的主要优缺点是什么?
  • 开始使用版本控制的好策略是什么
    使用 R 进行数据分析(例如,示例、工作流程想法、软件、指南链接)?
  • 最佳答案

    我觉得你的问题的答案是肯定的 - 使用版本控制系统管理文件的好处远远超过实现这样一个系统的成本。

    我会尽量详细回应你提出的一些观点:

    • Backup: I have a backup system already in place.


    是的,我也是。但是,关于依赖通用备份系统来充分跟踪与您的工作相关的重要和事件文件的适当性,需要考虑一些问题。在性能方面:
  • 您的备份系统以什么时间间隔拍摄快照?
  • 构建快照需要多长时间?
  • 拍摄快照时是否必须对整个硬盘进行镜像,或者是否可以轻松地告诉它只备份刚刚收到关键更新的两个文件?
  • 您的备份系统能否准确地向您显示从一次备份到下一次备份的文本文件发生了什么变化?

  • 而最重要的是:
  • 备份保存在多少个位置?它们是否与您的计算机位于同一物理位置?
  • 从备份系统恢复单个文件的给定版本有多容易?

  • 例如,有一台 Mac 并使用 Time Machine 备份到我电脑中的另一个硬盘驱动器。 Time Machine 非常适合恢复奇怪的文件或在出现问题时恢复我的系统。然而,它根本不具备信任我的重要工作所需的条件:
  • 备份时,Time Machine 必须对整个硬盘进行镜像,这需要花费大量时间。如果我继续工作,则无法保证我的文件会以我启动备份时的状态被捕获。在第一次备份完成之前,我也可能会达到另一个想要保存的点。
  • 保存我的 Time Machine 备份的硬盘驱动器位于我的机器中 - 这使我的数据容易受到盗窃、火灾和其他灾难的影响。

  • 使用像 Git 这样的版本控制系统,我可以启动特定文件的备份,而无需在文本编辑器中请求保存更多的工作 - 并且文件被即时成像和存储。此外,Git 是分布式的,所以我工作的每台计算机都有一个完整的存储库副本。

    这相当于让我的工作在四台不同的计算机上进行镜像 - 没有什么可以破坏我的文件和数据的天作之合,在这一点上我可能不会太在意。

    • Forking and rewinding: I've never felt the need to do this, but I can see how it could be useful (e.g., you are preparing multiple journal articles based on the same dataset; you are preparing a report that is updated monthly, etc)


    作为一个独奏者,我也没有那么多 fork 。然而,我通过选择倒带而节省的时间,单枪匹马地多次返回了我学习版本控制系统的投资。你说你从来没有觉得有必要这样做——但是在你当前的备份系统下倒带任何文件真的是一个轻松、可行的选择吗?

    有时,报告在 45 分钟、一小时或两天前看起来更好。

    • Collaboration: Most of the time I am analysing data myself, thus, I wouldn't get the collaboration benefits of version control.


    是的,但是如果您最终与其他人在项目上进行合作,您将学习一种可能被证明是必不可少的工具。

    • Time to evaluate and learn a version control system


    不要太担心这个。版本控制系统就像编程语言——它们有一些需要学习的关键概念,其余的只是语法糖。基本上,您学习的第一个版本控制系统需要投入最多的时间——切换到另一个版本控制系统只需要了解新系统如何表达关键概念。

    选择一个流行的系统并开始吧!

    • A possible increase in complexity over my current file management system


    你有没有一个文件夹,比如 Projects包含与您的数据分析事件相关的所有文件夹和文件?如果是这样,那么对它进行版本控制将会增加文件系统的复杂性 0 .如果你的项目散落在你的计算机上——那么你应该在应用版本控制之前将它们集中起来,这将结束 递减管理文件的复杂性 - 这就是我们拥有 Documents 的原因毕竟文件夹。

    1. Is version control worth the effort?


    是的!它为您提供了一个巨大的撤消按钮,让您可以轻松地将工作从一台机器转移到另一台机器,而无需担心丢失 USB 驱动器之类的事情。

    2 What are the main pros and cons of adopting version control?



    我能想到的唯一缺点是文件大小略有增加——但现代版本控制系统可以通过压缩和选择性保存来做绝对惊人的事情,所以这几乎是一个有争议的问题。

    3 What is a good strategy for getting started with version control for data analysis with R (e.g., examples, workflow ideas, software, links to guides)?



    将生成数据或报告的文件置于版本控制之下,要有选择性。如果你正在使用类似 Sweave 的东西,存储您的 .Rnw文件而不是 .tex从它们生成的文件。如果重新获取很麻烦,请存储原始数据。如果可能,编写并存储一个获取数据的脚本和另一个清理或修改数据的脚本,而不是存储对原始数据的更改。

    至于学习版本控制系统,我强烈推荐 Git 和 this guide到它。

    这些网站还有一些与使用 Git 执行特定操作相关的不错的提示和技巧:
  • http://www.gitready.com/
  • http://progit.org/blog.html
  • 关于git - 单独数据分析师的 R 和版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712421/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com