การควบคุม R และเวอร์ชั่นสำหรับนักวิเคราะห์ข้อมูลเดี่ยว


155

นักวิเคราะห์ข้อมูลหลายคนที่ฉันเคารพใช้การควบคุมเวอร์ชัน ตัวอย่างเช่น:

อย่างไรก็ตามฉันกำลังประเมินว่าการใช้ระบบควบคุมเวอร์ชันเช่น git จะคุ้มค่าหรือไม่

ภาพรวมโดยย่อ: ฉันเป็นนักวิทยาศาสตร์สังคมที่ใช้ R เพื่อวิเคราะห์ข้อมูลสำหรับงานวิจัย ปัจจุบันฉันไม่ได้ผลิตแพ็คเกจ R โดยทั่วไปรหัส R ของฉันสำหรับโครงการจะมีโค้ดสองสามพันบรรทัดสำหรับการป้อนข้อมูลการทำความสะอาดการจัดการการวิเคราะห์และการสร้างผลลัพธ์ โดยทั่วไปแล้วสิ่งพิมพ์จะเขียนด้วย LaTeX

สำหรับการควบคุมเวอร์ชันมีประโยชน์มากมายที่ฉันได้อ่าน แต่พวกเขาดูเหมือนจะไม่ค่อยเกี่ยวข้องกับนักวิเคราะห์ข้อมูลเดี่ยว

  • สำรองข้อมูล:ฉันมีระบบสำรองข้อมูลอยู่แล้ว
  • การแยกและกรอกลับ:ฉันไม่เคยรู้สึกว่าจำเป็นต้องทำเช่นนี้ แต่ฉันสามารถดูว่ามันจะมีประโยชน์อย่างไร (เช่นคุณกำลังเตรียมบทความวารสารหลายบทความตามชุดข้อมูลเดียวกันคุณกำลังเตรียมรายงานที่อัพเดตรายเดือน ฯลฯ )
  • การทำงานร่วมกัน:ส่วนใหญ่เวลาที่ฉันวิเคราะห์ข้อมูลด้วยตัวเองดังนั้นฉันจะไม่ได้รับประโยชน์จากการทำงานร่วมกันของการควบคุมเวอร์ชัน

นอกจากนี้ยังมีค่าใช้จ่ายที่อาจเกิดขึ้นหลายอย่างที่เกี่ยวข้องกับการใช้การควบคุมเวอร์ชัน:

  • ใช้เวลาในการประเมินและเรียนรู้ระบบควบคุมเวอร์ชัน
  • ความซับซ้อนที่เพิ่มขึ้นในระบบการจัดการไฟล์ปัจจุบันของฉัน

อย่างไรก็ตามฉันยังรู้สึกว่าฉันขาดอะไรไป คำแนะนำทั่วไปเกี่ยวกับการควบคุมเวอร์ชันดูเหมือนว่าจะมีการกล่าวถึงต่อนักวิทยาศาสตร์คอมพิวเตอร์มากกว่านักวิเคราะห์ข้อมูล

ดังนั้นโดยเฉพาะเกี่ยวกับนักวิเคราะห์ข้อมูลในสถานการณ์ที่คล้ายกับที่ระบุไว้ข้างต้น:

  1. การควบคุมเวอร์ชันคุ้มค่ากับความพยายามหรือไม่?
  2. ข้อดีและข้อเสียของการใช้การควบคุมเวอร์ชันคืออะไร
  3. กลยุทธ์ที่ดีในการเริ่มต้นด้วยการควบคุมเวอร์ชันสำหรับการวิเคราะห์ข้อมูลด้วย R คืออะไร (ตัวอย่างเช่นแนวคิดเวิร์กโฟลว์ซอฟต์แวร์ลิงก์ไปยังคู่มือ)

2
คุณได้อ่านสิ่งนี้แล้ว: stackoverflow.com/questions/360887/…
Marek

@Marek โพสต์นั้นมีประโยชน์ ขอบคุณมาก. ฉันยังต้องการทราบว่ามีประเด็นเฉพาะใดบ้างที่เกี่ยวข้องกับการวิเคราะห์ข้อมูล R และการเขียนการวิจัย
Jeromy Anglim

คำตอบสำหรับคำถามแรกของคุณคือ "ใช่" แน่นอน แต่คุณมักจะจัดการกับข้อมูลประเภทใด / ขนาดใด ระบบ CVS ส่วนใหญ่มีปัญหาในการจัดเก็บข้อมูลไบนารี
Eduardo Leoni

3
คุณอาจต้องการดูสิ่งนี้: stackoverflow.com/questions/2286831/ …
เชน

@Eduardo ฉันทำงานกับการผสมของข้อความล้วน (เช่นคั่นด้วยแท็บความกว้างคงที่) และไบนารี (ฐานข้อมูล SPSS, Excel, ฯลฯ ) ข้อมูลแตกต่างกัน: ตัวอย่างทั่วไป 100 แถว x 500 คอลัมน์ถึง 10,000 x 20 ถึง 2,000,000 x 20
Jeromy Anglim

คำตอบ:


89

ฉันรู้สึกว่าคำตอบสำหรับคำถามของคุณคือใช่ดังก้อง - ประโยชน์ของการจัดการไฟล์ของคุณด้วยระบบควบคุมเวอร์ชันเกินดุลค่าใช้จ่ายในการใช้ระบบดังกล่าว

ฉันจะพยายามตอบโดยละเอียดถึงประเด็นที่คุณยกระดับ:

  • สำรองข้อมูล:ฉันมีระบบสำรองข้อมูลอยู่แล้ว

ใช่และอื่น ๆ I. อย่างไรก็ตามมีคำถามบางข้อที่ต้องพิจารณาเกี่ยวกับความเหมาะสมของการใช้ระบบสำรองข้อมูลทั่วไปเพื่อติดตามไฟล์สำคัญและแอคทีฟที่เกี่ยวข้องกับงานของคุณอย่างเพียงพอ ในด้านประสิทธิภาพ:

  • ระบบสำรองข้อมูลของคุณใช้สแน็ปช็อตในช่วงเวลาใด
  • ใช้เวลาสร้างสแนปชอตนานแค่ไหน
  • ต้องถ่ายภาพฮาร์ดไดรฟ์ทั้งหมดของคุณเมื่อถ่ายภาพหรือไม่หรือจะบอกให้สำรองไฟล์สองไฟล์ที่เพิ่งได้รับการอัพเดตที่สำคัญอย่างง่ายดาย
  • ระบบสำรองข้อมูลของคุณสามารถแสดงให้คุณเห็นได้อย่างแม่นยำว่ามีอะไรเปลี่ยนแปลงในไฟล์ข้อความของคุณจากข้อมูลสำรองหนึ่งไปเป็นข้อมูลถัดไป

และที่สำคัญที่สุด:

  • มีการสำรองข้อมูลสำรองกี่ตำแหน่ง พวกเขาอยู่ในตำแหน่งทางกายภาพเดียวกันกับคอมพิวเตอร์ของคุณหรือไม่
  • มันง่ายแค่ไหนที่จะกู้คืนไฟล์ที่กำหนดรุ่นเดียวจากระบบสำรองของคุณ

ตัวอย่างเช่นมี Mac และใช้ Time Machine เพื่อสำรองข้อมูลไปยังฮาร์ดไดรฟ์อื่นในคอมพิวเตอร์ของฉัน Time Machine นั้นยอดเยี่ยมสำหรับการกู้คืนไฟล์คี่หรือกู้คืนระบบของฉันหากสิ่งต่าง ๆ เกิดความสับสน อย่างไรก็ตามมันก็ไม่มีสิ่งที่จะได้รับความเชื่อถือจากงานสำคัญของฉัน:

  • เมื่อทำการสำรองข้อมูล Time Machine จะต้องถ่ายภาพฮาร์ดไดรฟ์ทั้งหมดซึ่งใช้เวลานานพอสมควร หากฉันทำงานต่อไปไม่มีการรับประกันว่าไฟล์ของฉันจะถูกบันทึกในสถานะที่เคยเป็นเมื่อฉันทำการสำรองข้อมูล ฉันอาจไปถึงอีกจุดหนึ่งที่ฉันต้องการบันทึกก่อนที่การสำรองข้อมูลครั้งแรกจะเสร็จสิ้น

  • ฮาร์ดไดรฟ์ที่มีการสำรองข้อมูล Time Machine ของฉันอยู่ในเครื่องของฉันทำให้ข้อมูลของฉันเสี่ยงต่อการถูกโจรกรรมไฟไหม้และภัยพิบัติอื่น ๆ

ด้วยระบบควบคุมเวอร์ชันเช่น Git ฉันสามารถเริ่มการสำรองข้อมูลของไฟล์ที่ต้องการได้โดยไม่ต้องใช้ความพยายามอีกต่อไปในการขอบันทึกในโปรแกรมแก้ไขข้อความและไฟล์จะถูกถ่ายภาพและจัดเก็บทันที นอกจากนี้ Git ยังถูกแจกจ่ายเพื่อให้คอมพิวเตอร์แต่ละเครื่องที่ฉันทำงานมีสำเนาของที่เก็บ

จำนวนนี้มีงานของฉันสะท้อนในคอมพิวเตอร์ที่แตกต่างกันสี่ - ไม่มีอะไรสั้น ๆ ของการกระทำของพระเจ้าสามารถทำลายไฟล์และข้อมูลของฉันที่จุดที่ฉันอาจจะไม่สนใจมากเกินไปต่อไป

  • การแยกและกรอกลับ:ฉันไม่เคยรู้สึกว่าจำเป็นต้องทำเช่นนี้ แต่ฉันสามารถดูว่ามันจะมีประโยชน์อย่างไร (เช่นคุณกำลังเตรียมบทความวารสารหลายบทความตามชุดข้อมูลเดียวกันคุณกำลังเตรียมรายงานที่อัพเดตรายเดือน ฯลฯ )

ในฐานะศิลปินเดี่ยวฉันไม่ได้แยกแยะเช่นนั้น อย่างไรก็ตามเวลาที่ฉันบันทึกไว้โดยมีตัวเลือกในการกรอกลับได้จ่ายเงินคืนให้กับการลงทุนในการเรียนรู้ระบบควบคุมเวอร์ชันหลาย ๆ ครั้ง คุณบอกว่าคุณไม่เคยรู้สึกว่าจำเป็นต้องทำสิ่งนี้ - แต่การกรอกลับแฟ้มใต้ระบบสำรองข้อมูลปัจจุบันของคุณเป็นตัวเลือกที่ไม่เจ็บปวดและเป็นไปได้จริงหรือ

บางครั้งรายงานอาจดูดีขึ้น 45 นาทีชั่วโมงหรือสองวันที่ผ่านมา

  • การทำงานร่วมกัน:ส่วนใหญ่เวลาที่ฉันวิเคราะห์ข้อมูลด้วยตัวเองดังนั้นฉันจะไม่ได้รับประโยชน์จากการทำงานร่วมกันของการควบคุมเวอร์ชัน

ใช่ แต่คุณจะเรียนรู้เครื่องมือที่อาจพิสูจน์ได้ว่าขาดไม่ได้หากคุณได้ร่วมมือกับผู้อื่นในโครงการ

  • ใช้เวลาในการประเมินและเรียนรู้ระบบควบคุมเวอร์ชัน

ไม่ต้องกังวลเกี่ยวกับเรื่องนี้มากเกินไป ระบบควบคุมเวอร์ชันเป็นเหมือนภาษาโปรแกรม - พวกเขามีแนวคิดหลักสองสามข้อที่จำเป็นต้องเรียนรู้และส่วนที่เหลือเป็นเพียงประโยคน้ำตาล โดยพื้นฐานแล้วระบบควบคุมเวอร์ชันแรกที่คุณเรียนรู้จะต้องใช้เวลามากที่สุดในการเปลี่ยนไปใช้ระบบอื่นที่ต้องการการเรียนรู้ว่าระบบใหม่จะแสดงแนวคิดหลักอย่างไร

เลือกระบบที่ได้รับความนิยมและลงมือทำ!

  • ความซับซ้อนที่เพิ่มขึ้นในระบบการจัดการไฟล์ปัจจุบันของฉัน

คุณมีหนึ่งโฟลเดอร์Projectsที่มีโฟลเดอร์และไฟล์ทั้งหมดที่เกี่ยวข้องกับกิจกรรมการวิเคราะห์ข้อมูลของคุณหรือไม่? 0ถ้าเป็นอย่างนั้นตบควบคุมเวอร์ชันที่มันจะไปเพิ่มความซับซ้อนของระบบไฟล์ของคุณโดยตรง หากโครงการของคุณเกลื่อนกลาดเกี่ยวกับคอมพิวเตอร์ของคุณคุณควรรวมศูนย์ไว้ก่อนที่จะใช้การควบคุมเวอร์ชันและสิ่งนี้จะช่วยลดความซับซ้อนในการจัดการไฟล์ของคุณ - นั่นคือสาเหตุที่เรามีDocumentsโฟลเดอร์ทั้งหมด

  1. การควบคุมเวอร์ชันคุ้มค่ากับความพยายามหรือไม่?

ใช่ มันให้ปุ่มยกเลิกขนาดใหญ่และให้คุณถ่ายโอนงานจากเครื่องหนึ่งไปยังอีกเครื่องได้อย่างง่ายดายโดยไม่ต้องกังวลกับสิ่งต่าง ๆ เช่นการสูญเสียไดรฟ์ USB

2 ข้อดีและข้อเสียของการใช้การควบคุมเวอร์ชันคืออะไร

ข้อเสียเดียวที่ฉันนึกได้ก็คือการเพิ่มขนาดไฟล์เล็กน้อย - แต่ระบบควบคุมเวอร์ชันที่ทันสมัยสามารถทำสิ่งที่น่าอัศจรรย์อย่างยิ่งด้วยการบีบอัดและการบันทึกแบบเลือกดังนั้นนี่คือจุดที่สงสัยมาก

3 กลยุทธ์ที่ดีในการเริ่มต้นใช้งานการควบคุมเวอร์ชันสำหรับการวิเคราะห์ข้อมูลด้วย R คืออะไร (ตัวอย่างเช่นแนวคิดเวิร์กโฟลว์ซอฟต์แวร์ลิงก์ไปยังคู่มือ)

เก็บไฟล์ที่สร้างข้อมูลหรือรายงานภายใต้การควบคุมเวอร์ชันให้เลือก หากคุณกำลังใช้สิ่งที่ชอบSweaveจัดเก็บ.Rnwไฟล์ของคุณและไม่ใช่.texไฟล์ที่สร้างจากพวกเขา เก็บข้อมูลดิบหากมันเป็นความเจ็บปวดที่จะได้รับอีกครั้ง หากเป็นไปได้ให้เขียนและจัดเก็บสคริปต์ที่ได้รับข้อมูลของคุณและอีกอันที่ล้างหรือแก้ไขแทนที่จะเก็บการเปลี่ยนแปลงกับข้อมูลดิบ

สำหรับการเรียนรู้ระบบควบคุมเวอร์ชันฉันขอแนะนำ Git และคู่มือนี้

เว็บไซต์เหล่านี้มีเคล็ดลับและกลเม็ดที่เกี่ยวข้องกับการดำเนินการบางอย่างกับ Git:


1
+1 สำหรับการตอบกลับไปที่ "ความซับซ้อนที่เพิ่มขึ้นในระบบการจัดการไฟล์ปัจจุบันของฉัน" การควบคุมเวอร์ชันอาจลดระดับความซับซ้อนหากรายการที่วางไว้ในการควบคุมเวอร์ชันพร้อมกับให้การควบคุมระดับสแนปช็อตในขั้นตอนการสำรองข้อมูลของคุณ (คุณให้คำอธิบายบางอย่างด้วยซึ่งมีประโยชน์มากในการกู้คืนไม่ใช่ตามวันที่ )
Christopher Hackett

23

ฉันทำงานเป็นเวลาเก้าปีในร้านวิเคราะห์และแนะนำแนวคิดของการควบคุมเวอร์ชันสำหรับโครงการวิเคราะห์ของเราไปยังร้านค้านั้น ฉันเชื่อในการควบคุมเวอร์ชันอย่างชัดเจน ฉันจะทำประเด็นต่อไปนี้อย่างไร

  1. การควบคุมเวอร์ชันอาจไม่เหมาะสมหากคุณทำการวิเคราะห์เพื่อใช้ในศาล ไม่เหมือนที่ใช้กับคุณ แต่มันจะทำให้ลูกค้าของเรากังวลมากที่จะรู้ว่าทุกเวอร์ชันของทุกสคริปต์ที่เราเคยสร้างมานั้นอาจค้นพบได้ เราใช้การควบคุมเวอร์ชันสำหรับโมดูลรหัสที่นำกลับมาใช้ในการนัดหมายหลายครั้ง แต่ไม่ได้ใช้การควบคุมเวอร์ชันสำหรับรหัสเฉพาะการมีส่วนร่วมด้วยเหตุผลนั้น
  2. เราพบว่าประโยชน์ที่ใหญ่ที่สุดต่อการควบคุมเวอร์ชันมาจากการจัดเก็บโมดูลรหัสของกระป๋องที่ถูกใช้ซ้ำในหลาย ๆ โครงการ ตัวอย่างเช่นคุณอาจมีวิธีที่ชื่นชอบในการประมวลผลสารสกัด Census PUMS บางตัว จัดระเบียบรหัสนี้ลงในไดเรกทอรีและใส่ลงใน VCS ของคุณ จากนั้นคุณสามารถตรวจสอบโครงการใหม่ทุกครั้งที่คุณต้องการ อาจเป็นประโยชน์ในการสร้างกิ่งเฉพาะของรหัสบางอย่างสำหรับโครงการบางอย่างถ้าคุณกำลังประมวลผลพิเศษของชุดข้อมูลทั่วไปสำหรับโครงการนั้น จากนั้นเมื่อคุณทำโครงการเสร็จแล้วให้ตัดสินใจว่ารหัสพิเศษของคุณจะรวมกลับไปที่สาขาหลักมากน้อยเพียงใด
  3. อย่าใส่ข้อมูลที่ประมวลผลไว้ในการควบคุมเวอร์ชัน รหัสเท่านั้น เป้าหมายของเราคือการมีสคริปต์ที่ครบชุดอยู่เสมอเพื่อให้เราสามารถลบข้อมูลที่ประมวลผลภายในทั้งหมดของเรากดปุ่มและมีหมายเลขทุกหมายเลขสำหรับการสร้างรายงานใหม่ตั้งแต่เริ่มต้น นั่นเป็นวิธีเดียวที่จะแน่ใจได้ว่าคุณไม่มีบั๊กเก่าอาศัยอยู่ในข้อมูลของคุณอย่างลึกลับ
  4. เพื่อให้แน่ใจว่าผลลัพธ์ของคุณสามารถทำซ้ำได้อย่างสมบูรณ์จริง ๆ มันไม่เพียงพอที่จะเก็บโค้ดของคุณไว้ใน VCS เป็นเรื่องสำคัญอย่างยิ่งที่จะต้องติดตามอย่างรอบคอบว่าโมดูลใดที่ใช้เพื่อสร้างการส่งมอบโดยเฉพาะ
  5. สำหรับซอฟต์แวร์ฉันโชคดีกับการโค่นล้ม ง่ายต่อการติดตั้งและจัดการ ฉันรับรู้ถึงการอุทธรณ์ของ VCS ที่กระจายตัวออกมาใหม่ ๆ เช่น git และ mercurial แต่ฉันไม่แน่ใจว่ามีข้อได้เปรียบที่แข็งแกร่งหากคุณทำงานด้วยตัวเอง ในทางกลับกันฉันไม่ทราบว่ามีฟิล์มเนกาทีฟใด ๆ ที่จะใช้พวกเขา - ฉันแค่ไม่ได้ทำงานกับพวกเขาในสภาพแวดล้อมการวิเคราะห์

18

เพื่อความสมบูรณ์ฉันคิดว่าฉันจะให้การอัปเดตเกี่ยวกับการยอมรับการควบคุมเวอร์ชัน

ฉันได้พบการควบคุมเวอร์ชันสำหรับโครงการวิเคราะห์ข้อมูลเดี่ยวที่มีประโยชน์มาก

ฉันใช้คอมไพล์เป็นเครื่องมือควบคุมเวอร์ชันหลักของฉัน ฉันแรกเริ่มต้นใช้ Egit ภายใน Eclipse กับ StatET ตอนนี้โดยทั่วไปฉันเพิ่งใช้อินเตอร์เฟสบรรทัดคำสั่งแม้ว่าการรวมเข้ากับ RStudio นั้นค่อนข้างดี

ฉันบล็อกเกี่ยวกับประสบการณ์ของฉันในการตั้งค่าด้วยการควบคุมเวอร์ชันจากมุมมองของโครงการวิเคราะห์ข้อมูล

ตามที่ระบุในโพสต์ฉันพบว่าการใช้การควบคุมเวอร์ชันมีประโยชน์รองมากมายในวิธีที่ฉันคิดเกี่ยวกับโครงการวิเคราะห์ข้อมูลรวมถึงการชี้แจง:

  • ความแตกต่างระหว่างไฟล์ต้นฉบับและไฟล์ที่ได้รับ
  • ธรรมชาติของการพึ่งพา:
    • การพึ่งพาระหว่างองค์ประกอบของรหัส
    • การพึ่งพาระหว่างไฟล์ภายในโครงการ
    • และการพึ่งพากับไฟล์และโปรแกรมภายนอกที่เก็บ
  • ธรรมชาติของที่เก็บและวิธีแบ่งที่เก็บข้อมูล
  • ธรรมชาติของการกระทำและบันทึกการเปลี่ยนแปลงและเหตุการณ์สำคัญของโครงการ

2
ฉันเริ่มต้นด้วยอินเตอร์เฟสบรรทัดคำสั่งด้วย (และก็รู้ดี) แต่ฉันก็ยังเปลี่ยนไปใช้ RStudio เป็นหลักสำหรับความต้องการ R / git ของฉัน มันให้สิ่งต่าง ๆ ที่ฉันต้องการ แต่บางครั้งฉันจำเป็นต้องเปิดเทอร์มินัลเพื่อทำบางสิ่งที่ไม่ได้อยู่ในอินเทอร์เฟซโดยตรง
Dason

17

ฉันทำการวิจัยเศรษฐศาสตร์โดยใช้ R และ LaTeX และฉันมักจะทำงานภายใต้การควบคุมเวอร์ชัน มันเหมือนมีการเลิกทำแบบไม่ จำกัด ลอง Bazaar ซึ่งเป็นหนึ่งในวิธีเรียนรู้และใช้งานที่ง่ายที่สุดและหากคุณใช้ Windows จะมีส่วนต่อประสานกราฟิกกับผู้ใช้ (TortoiseBZR)

ใช่มีประโยชน์เพิ่มเติมในการควบคุมเวอร์ชันเมื่อทำงานกับผู้อื่น แต่แม้ในโครงการเดี่ยวมันก็สมเหตุสมผลดี


9

ตอนนี้คุณอาจคิดว่างานของคุณเป็นการพัฒนาโค้ดที่จะทำสิ่งที่คุณต้องการให้ทำ หลังจากที่คุณปรับใช้ระบบควบคุมการแก้ไขคุณจะคิดว่างานของคุณเป็นการเขียนมรดกของคุณลงในที่เก็บและทำการเปลี่ยนแปลงที่ยอดเยี่ยมในนั้น รู้สึกดีขึ้นกว่าเดิม


7

ฉันยังคงแนะนำการควบคุมเวอร์ชันสำหรับการแสดงเดี่ยวเช่นคุณเพราะการมีเครือข่ายความปลอดภัยในการตรวจจับข้อผิดพลาดอาจเป็นสิ่งที่ยอดเยี่ยม

ฉันทำงานเป็นนักพัฒนา Java เดี่ยวและฉันยังคงใช้การควบคุมซอร์ส ถ้าฉันกำลังตรวจสอบสิ่งต่าง ๆ อย่างต่อเนื่องฉันจะไม่สูญเสียงานเกินชั่วโมงถ้ามีอะไรผิดพลาด ฉันสามารถทดลองและปรับโครงสร้างใหม่ได้โดยไม่ต้องกังวลเพราะถ้ามันผิดเพี้ยนฉันสามารถย้อนกลับไปเป็นเวอร์ชันที่ทำงานล่าสุดได้เสมอ

หากเป็นกรณีของคุณฉันขอแนะนำให้ใช้การควบคุมแหล่งที่มา มันไม่ยากที่จะเรียนรู้


7

คุณต้องใช้ซอฟต์แวร์ควบคุมเวอร์ชันมิฉะนั้นการวิเคราะห์ของคุณจะไม่สามารถทำซ้ำได้อย่างสมบูรณ์แบบ

หากคุณต้องการเผยแพร่ผลลัพธ์ของคุณที่อื่นคุณควรจะสามารถสร้างสถานะของสคริปต์ของคุณได้ตลอดเวลาที่คุณสร้างมันขึ้นมา สมมติว่าผู้ตรวจทานคนหนึ่งพบข้อผิดพลาดในสคริปต์ตัวใดตัวหนึ่งของคุณ: คุณจะรู้ได้อย่างไรว่าผลลัพธ์ใดมีผลบ้างและผลใดบ้าง

ในกรณีนี้ระบบสำรองข้อมูลไม่เพียงพอเพราะอาจทำเพียงวันละครั้งและไม่ใช้ป้ายกำกับกับการสำรองข้อมูลอื่นดังนั้นคุณจึงไม่ทราบว่ารุ่นใดที่ตรงกับผลลัพธ์ และการเรียนรู้ vcs นั้นง่ายกว่าที่คุณคิดถ้าเรียนรู้วิธีเพิ่มไฟล์และวิธียอมรับการเปลี่ยนแปลงมันก็เพียงพอแล้ว


1
คุณโต้เถียงอย่างรุนแรง อย่างไรก็ตามฉันคิดว่าการวิจัยที่ทำซ้ำได้นั้นเป็นไปได้หากไม่มีระบบควบคุมเวอร์ชันที่เป็นทางการ มันมีความสง่างามและยืดหยุ่นน้อยกว่า ฉันพยายามเขียนรหัส R โดยใช้หลักการของการเขียนโปรแกรมเพื่อให้เอาต์พุต R ถูกรวมเข้ากับเอกสารสุดท้ายโดยอัตโนมัติ ไฟล์ที่เกี่ยวข้องกับผลิตภัณฑ์ขั้นสุดท้ายนี้จะสามารถบันทึกได้
Jeromy Anglim

ที่ช่วยให้คุณสามารถนำการวิเคราะห์ทั้งหมดไปใช้กับข้อมูลของคุณได้อีกครั้ง แต่ไม่ได้บอกคุณว่าผลลัพธ์ใดในอดีตของคุณที่ได้รับผลกระทบจากข้อผิดพลาด
dalloliogm

6

การควบคุมเวอร์ชันคุ้มค่ากับความพยายามหรือไม่?

ใช่ใหญ่

ข้อดีและข้อเสียของการใช้การควบคุมเวอร์ชันคืออะไร

ข้อดี: คุณสามารถติดตามสิ่งที่คุณเคยทำมาก่อน มีประโยชน์อย่างยิ่งสำหรับน้ำยางเนื่องจากคุณอาจต้องการย่อหน้าเก่าที่คุณลบทิ้งไป! เมื่อคอมพิวเตอร์ของคุณเกิดปัญหาหรือทำงานกับคอมพิวเตอร์เครื่องใหม่คุณก็สามารถนำข้อมูลของคุณกลับมาใช้ได้ทันที

ข้อเสีย: คุณต้องทำการตั้งค่าบางอย่าง

กลยุทธ์ที่ดีในการเริ่มต้นด้วยการควบคุมเวอร์ชันสำหรับการวิเคราะห์ข้อมูลด้วย R คืออะไร (ตัวอย่างเช่นแนวคิดเวิร์กโฟลว์ซอฟต์แวร์ลิงก์ไปยังคู่มือ)

เพิ่งเริ่มใช้งาน ฉันใช้เต่า SVN บน windows เป็นเครื่องมือไคลเอนต์และแผนกของฉันมีเซิร์ฟเวอร์ svn ฉันใส่รหัสและข้อมูลทั้งหมดของฉัน (ใช่คุณใส่ข้อมูลของคุณที่นั่นด้วย!)


6

ย้อนกลับไปก่อนและเรียนรู้ข้อดีของการเขียนแพ็คเกจ R! คุณบอกว่าคุณมีโครงการที่มีโค้ดหลายพันบรรทัด แต่สิ่งเหล่านี้ไม่ได้มีโครงสร้างหรือมีเอกสารเหมือนกับรหัสแพ็คเกจ คุณจะได้รับชัยชนะที่ยิ่งใหญ่ด้วยการปฏิบัติตามอุดมคติของแพ็คเกจรวมถึงเอกสารสำหรับทุกฟังก์ชั่นการทดสอบข้อผิดพลาดที่ยากต่อการจับสิ่งอำนวยความสะดวกในการเขียนชุดการทดสอบของคุณเอง ฯลฯ

หากคุณยังไม่มีวินัยในการผลิตบรรจุภัณฑ์ฉันไม่แน่ใจว่าคุณมีวินัยในการควบคุมการแก้ไขที่เหมาะสม


3
มันคือทุกการเดินทางโดยเฉพาะอย่างยิ่งเมื่อคุณมาจากพื้นหลังที่ไม่ใช่ด้านไอที ตอนนี้ฉันใช้คอมไพล์แล้วมันเยี่ยมมาก ฉันก็เริ่มตะลุยกับโครงสร้างพื้นฐานแพ็คเกจ R ในส่วนที่เกี่ยวกับบรรทัดโค้ดจำนวน 1,000 บรรทัดซึ่งมักเป็นผลมาจากการประมวลผลข้อมูลจำนวนมากและการสร้างสมมุติฐานที่ขับเคลื่อนด้วยกราฟิกและการสร้างตาราง ในขณะที่ประสบการณ์ช่วยให้มองเห็น abstractions ได้ง่ายขึ้นฉันพบว่าโค้ดที่มีลักษณะเฉพาะจำนวนหนึ่งเป็นเพียงส่วนหนึ่งของความหมายในการวิเคราะห์ชุดข้อมูลทางจิตวิทยา ฉันคิดว่านี่ช่วยอธิบายความนิยมของแพ็คเกจ ProjectTemplate และ Sweave
Jeromy Anglim

5

ฉันเห็นด้วยกับความรู้สึกข้างต้นและพูดว่าใช่การควบคุมเวอร์ชันนั้นมีประโยชน์

ข้อดี;

  • เก็บบันทึกงานวิจัยของคุณรวมถึงสำรองไว้ (ติดแท็ก)
  • มันช่วยให้คุณลองแนวคิดที่แตกต่างออกไปและย้อนกลับไปหากไม่ได้ผล (การแตกแขนง)
  • คุณสามารถแบ่งปันงานของคุณกับคนอื่น ๆ และพวกเขาสามารถแบ่งปันการเปลี่ยนแปลงของพวกเขากับคุณ (ฉันรู้ว่าคุณไม่ได้ระบุสิ่งนี้ แต่มันยอดเยี่ยม)
  • ระบบควบคุมเวอร์ชันส่วนใหญ่ทำให้ง่ายต่อการสร้างบันเดิลที่บีบอัดสำหรับไฟล์ทั้งหมดภายใต้การควบคุม ณ จุดหนึ่งตัวอย่างเช่น ณ จุดที่คุณส่งบทความเพื่อเผยแพร่สิ่งนี้จะช่วยได้เมื่อผู้อื่นตรวจสอบบทความของคุณ (คุณสามารถทำได้ด้วยตนเอง แต่ทำไมต้องทำกระบวนการเหล่านี้เมื่อการควบคุมเวอร์ชันทำได้)

ในแง่ของชุดเครื่องมือฉันใช้Gitพร้อมกับStatEtและEclipseที่ทำงานได้ดีแม้ว่าคุณจะไม่ต้องใช้ Eclipse แน่นอน มีปลั๊กอิน Gitไม่กี่ตัวสำหรับ Eclipseแต่โดยทั่วไปฉันใช้ตัวเลือกบรรทัดคำสั่ง


ฉันใช้ StatET และ Eclipse สำหรับ R; ดังนั้นฉันอาจลองคอมไพล์ก่อน
Jeromy Anglim

4

การควบคุมเวอร์ชันสำหรับการพัฒนาเดี่ยว (ทุกชนิด) นั้นน่าสนใจมากสำหรับ:

  • สำรวจประวัติศาสตร์และเปรียบเทียบงานปัจจุบันกับการกระทำที่ผ่านมา
  • การแบรนช์และลองใช้เวอร์ชันที่แตกต่างกันสำหรับไฟล์ชุดเดียวกัน

หากคุณไม่เห็นว่าตัวเองกำลังทำหนึ่งในสองคุณสมบัติการควบคุมเวอร์ชันพื้นฐานเหล่านั้นเครื่องมือสำรองข้อมูลอย่างง่ายอาจเป็นสิ่งที่คุณต้องการ
หากคุณมีความต้องการคุณสมบัติเหล่านั้นคุณจะได้รับการสำรองข้อมูลด้วยgit bundleเช่น)


4

ฉันยังทำงานเขียนบทเดี่ยวและฉันพบว่ามันช่วยให้สิ่งต่าง ๆ ง่ายขึ้นแทนที่จะทำให้ซับซ้อนขึ้น การสำรองข้อมูลรวมอยู่ในเวิร์กโฟลว์การเข้ารหัสและไม่จำเป็นต้องมีขั้นตอนระบบไฟล์แยกต่างหาก เวลาที่ใช้ในการเรียนรู้พื้นฐานของระบบควบคุมเวอร์ชันใด ๆ จะต้องใช้เวลาอย่างแน่นอน


4

Dropbox มีการควบคุมเวอร์ชัน "pport man's" ที่ให้คุณเป็นส่วนหนึ่งของความพยายามเล็กน้อยพร้อมสิทธิประโยชน์มากมาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.