programing

단독 데이터 분석가를 위한 Rand 버전 제어

topblog 2023. 6. 17. 08:14
반응형

단독 데이터 분석가를 위한 Rand 버전 제어

제가 존경하는 많은 데이터 분석가들은 버전 제어를 사용합니다.예:

하지만 git와 같은 버전 관리 시스템을 도입하는 것이 가치가 있을지 평가하고 있습니다.

간략한 개요:저는 연구 출판물을 위한 데이터를 분석하기 위해 R을 사용하는 사회과학자입니다.저는 현재 R 패키지를 생산하지 않습니다.프로젝트의 R 코드에는 일반적으로 데이터 입력, 청소, 조작, 분석 및 출력 생성을 위한 수천 줄의 코드가 포함됩니다.게시는 일반적으로 LaTeX를 사용하여 작성됩니다.

버전 관리와 관련하여 제가 읽은 많은 이점이 있지만, 단독 데이터 분석가와 관련이 적은 것 같습니다.

  • 백업: 백업 시스템이 이미 설치되어 있습니다.
  • 포크 및 되감기:이렇게 해야 할 필요성을 느낀 적은 없지만, 어떻게 유용한지 알 수 있습니다(예: 동일한 데이터 세트를 기반으로 여러 저널 기사를 준비 중, 매월 업데이트되는 보고서를 준비 중 등).
  • 협업:대부분의 경우 제가 직접 데이터를 분석하기 때문에 버전 관리의 협업 이점을 얻을 수 없습니다.

또한 버전 제어를 채택하는 데에는 다음과 같은 몇 가지 잠재적인 비용이 수반됩니다.

  • 버전 관리 시스템을 평가하고 학습하는 시간
  • 현재 파일 관리 시스템에 비해 복잡성이 증가할 수 있음

하지만, 저는 여전히 무언가를 놓치고 있다는 느낌을 가지고 있습니다.버전 관리에 대한 일반적인 지침은 데이터 분석가보다 컴퓨터 과학자를 대상으로 하는 것으로 보입니다.

따라서 특히 에 나열된 것과 유사한 상황에서 데이터 분석가와 관련하여:

  1. 버전 관리가 노력할 가치가 있습니까?
  2. 버전 제어를 채택할 때의 주요 장단점은 무엇입니까?
  3. R로 데이터 분석을 위한 버전 관리를 시작하기 위한 좋은 전략은 무엇입니까(예: 워크플로우 아이디어, 소프트웨어, 가이드 링크)?

귀하의 질문에 대한 대답은 "예"라고 생각합니다. 버전 관리 시스템을 사용하여 파일을 관리하는 것의 이점은 이러한 시스템을 구현하는 데 드는 비용보다 훨씬 큽니다.

당신이 제기한 몇 가지 사항에 대해 자세히 답변해 보겠습니다.

  • 백업: 백업 시스템이 이미 설치되어 있습니다.

네, 저도 그렇습니다.그러나 업무와 관련된 중요하고 활성화된 파일을 적절하게 추적하기 위해 범용 백업 시스템에 의존하는 것이 적절한지에 대해 고려해야 할 몇 가지 질문이 있습니다.성능 측면:

  • 백업 시스템은 언제 스냅샷을 생성합니까?
  • 스냅샷을 만드는 데 얼마나 걸립니까?
  • 스냅샷을 만들 때 전체 하드 드라이브를 이미징해야 합니까? 아니면 중요한 업데이트를 받은 두 개의 파일만 백업하도록 쉽게 지시할 수 있습니까?
  • 백업 시스템에서 텍스트 파일이 백업마다 어떻게 변경되었는지 정확하게 보여줄 수 있습니까?

그리고 가장 중요한 것은:

  • 백업은 몇 개의 위치에 저장됩니까?컴퓨터와 물리적 위치가 같습니까?
  • 백업 시스템에서 지정된 버전의 단일 파일을 복원하는 것은 얼마나 쉬운 일입니까?

예를 들어 Mac을 사용하고 Time Machine을 사용하여 컴퓨터의 다른 하드 드라이브에 백업할 수 있습니다.Time Machine은 이상한 파일을 복구하거나 문제가 발생할 경우 시스템을 복원하는 데 유용합니다.하지만 제 중요한 일에 대한 신뢰를 얻을 수 있는 것은 아닙니다.

  • 백업할 때 Time Machine은 전체 하드 드라이브를 이미징해야 하므로 상당한 시간이 걸립니다.작업을 계속하면 백업을 시작할 때와 같은 상태로 파일이 캡처된다는 보장이 없습니다.또한 첫 번째 백업이 완료되기 전에 저장하고 싶은 다른 지점에 도달할 수도 있습니다.

  • Time Machine 백업이 저장되는 하드 드라이브는 컴퓨터에 있습니다. 따라서 데이터가 도난, 화재 및 기타 재해에 취약해집니다.

Git와 같은 버전 제어 시스템을 사용하면 텍스트 편집기에 저장을 요청하는 수고 없이 특정 파일의 백업을 시작할 수 있으며 파일이 즉시 이미징 및 저장됩니다.게다가 Git는 분산되어 있어서 제가 일하는 각 컴퓨터가 저장소의 전체 복사본을 가지고 있습니다.

이것은 제 작업이 네 대의 다른 컴퓨터에 걸쳐 미러링되는 것과 같습니다. 신의 행위가 제 파일과 데이터를 파괴할 수 있는 것이나 다름없습니다. 어쨌든 그 시점에서 저는 그다지 신경 쓰지 않을 것입니다.

  • 포크 및 되감기:이렇게 해야 할 필요성을 느낀 적은 없지만, 어떻게 유용한지 알 수 있습니다(예: 동일한 데이터 세트를 기반으로 여러 저널 기사를 준비 중, 매월 업데이트되는 보고서를 준비 중 등).

솔로로서, 저도 포크를 많이 하지 않습니다.그러나 되감기 옵션을 사용하여 절약한 시간은 버전 제어 시스템을 배우는 데 투자한 비용을 한 손으로 여러 번 회수했습니다.이 작업을 수행할 필요성을 느껴본 적이 없다고 하셨는데, 현재 백업 시스템에서 파일을 리와인딩하는 것이 정말로 고통스럽고 실현 가능한 방법이었습니까?

때때로 그 보고서는 한 시간이나 이틀 전인 45분 동안 더 좋아 보였습니다.

  • 협업:대부분의 경우 제가 직접 데이터를 분석하기 때문에 버전 관리의 협업 이점을 얻을 수 없습니다.

예, 하지만 프로젝트에서 다른 사람들과 협력하게 되면 필수적인 도구를 배울 수 있습니다.

  • 버전 관리 시스템을 평가하고 학습하는 시간

이것에 대해 너무 걱정하지 마세요.버전 제어 시스템은 프로그래밍 언어와 같습니다. 학습해야 할 몇 가지 핵심 개념을 가지고 있고 나머지는 단지 통사적인 설탕입니다.기본적으로 첫 번째 버전 제어 시스템은 가장 많은 시간을 투자해야 합니다. 다른 버전으로 전환하려면 새로운 시스템이 주요 개념을 어떻게 표현하는지만 배우면 됩니다.

인기 있는 시스템을 선택하고 도전해 보세요!

  • 현재 파일 관리 시스템에 비해 복잡성이 증가할 수 있음

요, 예를 들어 가하있습까니나더?Projects데이터 분석 활동과 관련된 모든 폴더와 파일이 포함되어 있습니까? 면 버 제 시 복 이 정 증 확 히 합 가 니 다 성 잡 의 템 스 파 면 하 슬 랩 전 어 를 ▁if 니 ▁the ▁exactly 다 합 증 ▁sla ▁on ▁then ▁increase ▁system0프로젝트가 컴퓨터에 흩어져 있는 경우 버전 제어를 적용하기 전에 프로젝트를 중앙 집중화해야 합니다. 그러면 파일 관리의 복잡성이 감소합니다. 이것이 바로 우리가 사용하는 이유입니다.Documents결국 폴더입니다.

  1. 버전 관리가 노력할 가치가 있습니까?

예! 큰 실행 취소 버튼을 제공하며 USB 드라이브 분실과 같은 걱정 없이 컴퓨터 간에 작업을 쉽게 전송할 수 있습니다.

버전 관리를 채택하는 것의 주요 장단점은 무엇입니까?

제가 생각할 수 있는 유일한 단점은 파일 크기가 약간 증가하는 것입니다. 하지만 최신 버전의 제어 시스템은 압축과 선택적 저장을 통해 매우 놀라운 일을 할 수 있기 때문에 이것은 거의 중요한 포인트입니다.

3 R로 데이터 분석을 위한 버전 관리를 시작하기 위한 좋은 전략은 무엇입니까? (예: 워크플로우 아이디어, 소프트웨어, 가이드 링크)

데이터 또는 보고서를 생성하는 파일을 버전 제어로 유지하고 선택적으로 유지합니다.▁▁like는 같은 것을 한다면,Sweave당신의 돈을 하세요..Rnw이 아닌 .tex파일을 생성할 수 있습니다.다시 수집하는 것이 번거로운 경우 원시 데이터를 저장합니다.가능하면 원시 데이터에 대한 변경 사항을 저장하는 대신 데이터를 획득하는 스크립트와 이를 치료하거나 수정하는 스크립트를 작성하고 저장합니다.

버전 관리 시스템을 배우는 것에 대해서는 Git과 이 가이드를 적극 추천합니다.

또한 이러한 웹 사이트에는 Git로 특정 작업을 수행하는 것과 관련된 몇 가지 유용한 팁과 요령이 있습니다.

저는 분석 작업장에서 9년 동안 일했고, 분석 프로젝트의 버전 관리에 대한 아이디어를 그 작업장에 소개했습니다.저는 분명히 버전 관리를 매우 믿습니다.하지만 저는 다음과 같은 점을 지적하겠습니다.

  1. 법원에서 사용 가능한 분석을 수행하는 경우 버전 관리가 적절하지 않을 수 있습니다.이것이 당신에게 적용되는 것처럼 들리지는 않지만, 우리가 제작한 모든 스크립트의 모든 버전이 잠재적으로 발견될 수 있다는 것을 알면 고객들을 매우 불안하게 만들었을 것입니다.여러 계약에서 재사용되는 코드 모듈에는 버전 제어를 사용했지만 계약별 코드에는 버전 제어를 사용하지 않았기 때문입니다.
  2. 버전 제어의 가장 큰 이점은 여러 프로젝트에서 재사용되는 코드의 통조림 모듈을 저장하는 것입니다.예를 들어, 특정 인구 조사 PUMS 추출물을 처리하는 데 특히 선호되는 방법이 있을 수 있습니다.이 코드를 디렉토리로 구성하여 VCS에 넣습니다.그런 다음 필요할 때마다 새 프로젝트별로 체크아웃할 수 있습니다.특정 프로젝트에 대한 특정 공통 데이터 집합을 특수하게 처리하는 경우 특정 프로젝트에 대한 특정 코드 분기를 만드는 것이 유용할 수도 있습니다.그런 다음 해당 프로젝트를 마치면 주 분기로 다시 병합할 특수 코드의 양을 결정합니다.
  3. 처리된 데이터를 버전 제어에 넣지 마십시오.코드만.우리의 목표는 항상 내부적으로 처리된 모든 데이터를 삭제하고 버튼을 눌러 보고서의 모든 번호를 처음부터 다시 생성할 수 있도록 완벽한 스크립트 세트를 갖추는 것이었습니다.그것이 당신의 데이터에 오래된 버그가 존재하지 않는다는 것을 확실히 하는 유일한 방법입니다.
  4. 결과가 완전히 재현되도록 하려면 코드를 VCS에 보관하는 것만으로는 충분하지 않습니다.어떤 버전의 모듈이 특정 결과물을 생성하는 데 사용되었는지 신중하게 추적하는 것이 중요합니다.
  5. 소프트웨어에 관해서는, 저는 Subversion에서 운이 좋았습니다.설정 및 관리가 쉽습니다.Git 및 Mercurial과 같은 새로운 분산형 VCS의 매력은 알고 있지만, 혼자 작업하는 경우 강력한 이점이 있는지는 잘 모르겠습니다.반면에, 저는 그것들을 사용하는 것에 대한 어떤 부정적인 것도 모릅니다. 저는 단지 분석 환경에서 그들과 함께 일하지 않았을 뿐입니다.

완전성을 위해 버전 제어 채택에 대한 업데이트를 제공하려고 했습니다.

단독 데이터 분석 프로젝트의 버전 관리가 매우 유용하다는 것을 알게 되었습니다.

저는 Git를 주요 버전 제어 도구로 채택했습니다.저는 처음에 StatET와 함께 Eclipse 내에서 Egit을 사용하기 시작했습니다.RStudio와의 통합이 상당히 좋지만, 지금은 일반적으로 명령줄 인터페이스를 사용합니다.

저는 데이터 분석 프로젝트의 관점에서 버전 관리를 설정한 경험에 대해 블로그에 올렸습니다.

게시물에서 언급한 바와 같이, 버전 제어를 채택하는 것이 데이터 분석 프로젝트에 대한 제 생각에 다음과 같은 많은 부수적인 이점을 가지고 있다는 것을 알게 되었습니다.

  • 원본 파일과 파생 파일의 구별
  • 종속성의 특성:
    • 코드 요소 간의 종속성
    • 프로젝트 내 파일 간의 종속성
    • 저장소 외부에 있는 파일 및 프로그램과의 종속성
  • 저장소의 특성 및 저장소를 분할하는 방법
  • 변경사항 및 프로젝트 마일스톤 커밋 및 문서화의 특성

저는 R과 LaTeX를 사용하여 경제학 연구를 하고 있으며, 항상 제 작업을 버전 관리 하에 둡니다.마치 무제한 실행 취소와 같습니다.바자르 방식을 사용해 보십시오. 학습 및 사용이 가장 간단하며, Windows(윈도우)에서는 그래픽 사용자 인터페이스(TortoiseBZR)가 제공됩니다.

예, 다른 사람들과 함께 작업할 때 버전 제어에는 추가적인 이점이 있지만, 단독 프로젝트에서도 상당한 이점이 있습니다.

지금 당장, 여러분은 여러분의 작업이 여러분이 원하는 것을 할 수 있는 코드를 개발하는 것이라고 생각할 것입니다.수정 관리 시스템을 사용하여 작업을 수행한 후에는 저장소에 자신의 유산을 기록하고 이에 대한 눈부신 점진적인 변경을 수행하는 것으로 간주됩니다.기분이 훨씬 좋아요.

실수를 잡을 수 있는 안전망을 갖추는 것은 좋은 일이 될 수 있기 때문에 저는 여전히 당신과 같은 단독 행동을 위한 버전 컨트롤을 추천하고 싶습니다.

저는 자바 단독 개발자로 일했고, 지금도 소스 제어를 사용하고 있습니다.계속해서 체크인을 하고 있으면, 일이 잘못되어도 한 시간 이상 일을 잃을 수 없습니다.저는 걱정 없이 실험과 리팩터링을 할 수 있습니다. 왜냐하면 만약 그것이 잘못되면 언제든지 마지막 작업 버전으로 돌아갈 수 있기 때문입니다.

그렇다면 소스 제어를 사용하는 것이 좋습니다.배우는 것은 어렵지 않습니다.

버전 관리 소프트웨어를 사용해야 합니다. 그렇지 않으면 분석을 완벽하게 재현할 수 없습니다.

결과를 어딘가에 게시하려면 스크립트를 생성한 시점에서 항상 스크립트의 상태를 재구성할 수 있어야 합니다.검토자 중 한 명이 스크립트 중 하나에서 오류를 발견했다고 가정해 보겠습니다. 어떤 결과가 영향을 받고 어떤 결과가 영향을 받지 않는지 어떻게 알 수 있습니까?

이런 의미에서 백업 시스템은 하루에 한 번만 수행되고 여러 백업에 레이블을 적용하지 않기 때문에 어떤 버전이 어떤 결과에 해당하는지 알 수 없기 때문에 충분하지 않습니다.또한 VCS를 학습하는 것은 생각보다 간단합니다. 파일을 추가하는 방법과 변경 사항을 커밋하는 방법을 배우면 이미 충분합니다.

버전 관리가 노력할 가치가 있습니까?

대찬성

버전 제어를 채택할 때의 주요 장단점은 무엇입니까?

찬성: 당신은 당신이 전에 한 일을 추적할 수 있습니다.당신이 삭제한 오래된 단락이 필요할 수 있기 때문에 특히 라텍스에 유용합니다!컴퓨터가 고장 나거나 새 컴퓨터로 작업할 때 데이터를 즉시 복구할 수 있습니다.

단점: 몇 가지 설정을 해야 합니다.

R로 데이터 분석을 위한 버전 관리를 시작하기 위한 좋은 전략은 무엇입니까(예: 워크플로우 아이디어, 소프트웨어, 가이드 링크)?

그냥 사용하기 시작하세요.저는 윈도우에서 거북이 SVN을 클라이언트 도구로 사용하고 부서에는 SVN 서버가 있습니다. 저는 제 모든 코드와 데이터를 그곳에 넣었습니다. (네, 당신도 거기에 데이터를 넣었습니다!)

먼저 조금 뒤로 물러서서 R 패키지를 작성할 때의 이점을 배우십시오!수천 줄의 코드가 있는 프로젝트가 있다고 하셨는데, 패키지 코드처럼 구성되거나 문서화되지는 않았습니까?모든 기능에 대한 문서화, 일반적으로 파악하기 어려운 오류에 대한 테스트, 자신만의 테스트 스위트를 작성하는 기능 등 패키지 이상에 부합하면 큰 이점을 얻을 수 있습니다.

패키지를 제작할 수 있는 규율이 없다면, 적절한 수정 관리를 할 수 있는 규율이 있는지 모르겠습니다.

저는 위의 의견에 동의하며, 예, 버전 제어는 유용하다고 말할 것입니다.

장점;

  • 연구 기록과 백업을 유지합니다. (계속)
  • 그것은 당신이 다른 아이디어를 시도하고 그것들이 작동하지 않으면 돌아갈 수 있게 해줍니다(계속)
  • 다른 사용자와 작업을 공유할 수 있으며, 다른 사용자도 작업에 대한 변경 사항을 공유할 수 있습니다(이것을 지정하지 않은 것은 알지만, 좋습니다).
  • 대부분의 버전 제어 시스템을 사용하면 특정 시점에서 제어 중인 모든 파일에 대한 압축 번들을 쉽게 만들 수 있습니다. 예를 들어, 게시를 위해 기사를 제출하는 시점에서 다른 사용자가 기사를 검토할 때 도움이 될 수 있습니다.(수동으로 이 작업을 수행할 수 있지만 버전 제어만 수행하는 경우 이러한 프로세스를 구성하는 이유는 무엇입니까?)

도구 세트의 측면에서, 저는 GitStateEt Eclipse를 사용합니다. 물론 Eclipse를 사용할 필요는 없습니다.Eclipse용 Git 플러그인은 몇 가지 있지만 일반적으로 명령줄 옵션을 사용합니다.

(모든 종류의) 단독 개발을 위한 버전 컨트롤은 다음과 같은 경우에 정말 흥미롭습니다.

  • 역사를 탐색하고 현재 작업을 과거의 커밋과 비교하기
  • 동일한 파일 집합에 대해 다른 버전을 분기하고 시도하는 중

두 가지 기본 버전 제어 기능 중 하나를 수행하지 않는 경우 간단한 백업 도구만 있으면 됩니다.
이러한 기능이 필요한 경우 백업도 함께 제공됩니다(예:

저는 또한 단독 스크립팅 작업을 하는데, 이것이 작업을 더 복잡하게 만드는 것이 아니라 단순하게 유지한다는 것을 알게 되었습니다.백업은 코딩 워크플로우에 통합되며 별도의 파일 시스템 프로시저 세트가 필요하지 않습니다.모든 버전 관리 시스템의 기본 사항을 배우는 데 걸리는 시간은 분명 유용하게 사용되는 시간일 것입니다.

Dropbox에는 "pporman's" 버전 제어 기능이 있어 많은 추가 혜택과 함께 적은 노력으로 일부를 제공합니다.

의심할 여지 없이 버전 제어는 노력할 가치가 있습니다.버전 제어를 사용하면 분석가가 직면하는 일반적인 문제를 해결할 수 있습니다.예를 들어, 과거에는 코드가 더 빨리 실행되었습니다.버전 제어를 사용하면 프로젝트의 과거 상태로 돌아갈 수 있습니다.그리고 이전 버전을 사용하여 빠른 코드를 실행합니다.

버전 제어는 파일 및 폴더 집합인 리포지토리의 저장 기록을 추적합니다.버전 제어는 해당 리포지토리의 저장된 각 버전에 커밋을 할당합니다.커밋의 진화를 쉽게 추적할 수 있습니다.각 리포지토리 버전의 특성을 이해합니다.새로 개발한 기능을 이전의 빠른 코드와 병합할 수 있습니다.

앞으로 버전 관리 문제가 더 많이 발생할 가능성이 높습니다.특히 데이터 분석에서 장기적으로 사용할 경우에는 더욱 그렇습니다.저는 당신이 그것을 공부하기를 권장합니다.git를 설치하고 리포지토리 중 하나를 추적합니다.커밋하는 방법을 배우십시오.여러분은 곧 많은 유용한 용도를 발견할 것입니다.

언급URL : https://stackoverflow.com/questions/2712421/r-and-version-control-for-the-solo-data-analyst

반응형