ความแตกต่างระหว่าง R MarkDown และ R NoteBook


137

ฉันกำลังพยายามที่จะเข้าใจในระดับสูงสิ่งที่แตกต่างระหว่างและR Markdown R NoteBookฉันรู้ว่ามันมีความสัมพันธ์กัน แต่ฉันอยากรู้ว่ามันเกี่ยวข้องกันอย่างไร ความเข้าใจของฉันคือ:

ฉันรู้ว่า R Notebooks เป็นเอกสาร R Markdown แต่ฉันสับสนเกี่ยวกับคำศัพท์

ตัวเลือกไฟล์ใหม่ RStudio มีทั้งR MarkdownและR NoteBookและการเลือกอย่างใดอย่างหนึ่งเพื่อเปิดR Markdownไฟล์ แต่มีความแตกต่างเล็กน้อย แค่พยายามหาว่าทำไมถึงมีสองตัวเลือกและอะไรคือความแตกต่างระหว่างสองตัวนี้?

ป้อนคำอธิบายภาพที่นี่

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

R NoteBook ทำอะไรแตกต่างจากการใช้ R MarkDown หรือความสามารถใหม่ ๆ ที่ R NoteBook นำมาใช้?

ความนิยมทั้งหมดของฉันในการค้นหาเว็บชี้ให้เห็นว่า R Notebook ใช้ R Markdown แต่ฉันไม่พบความช่วยเหลือเกี่ยวกับสิ่งที่แตกต่างกันโดยเฉพาะระหว่างทั้งสอง


1
ฉันใช้เครื่องถักและ LaTeX ดังนั้นฉันจึงเลือกตัวเลือก R Sweave ไม่ได้ใช้ RMarkdown ทั้งหมดที่ฉันสามารถพูดได้ก็คือ LaTex สามารถทำอะไรก็ได้ แต่พลังนั้นนำมาซึ่งความซับซ้อนและเส้นโค้งการเรียนรู้ นอกจากนี้ยังมีชุมชนผู้สนับสนุนจำนวนมากหนังสือและแหล่งข้อมูลมากมาย
lawyeR

1
ขอบคุณ @lawyeR ฉันไม่กังวลเกี่ยวกับทรัพยากรและฉันสามารถหาเส้นทางรอบ R และ LaTeX ได้ค่อนข้างดี ฉันสงสัยว่า Sweave คืออะไร แต่ฉันคิดว่าจะต้องกังวลในภายหลัง ขอบคุณสำหรับข้อมูลเชิงลึกของคุณเกี่ยวกับเรื่องนี้ สำหรับตอนนี้ฉันแค่ดูความแตกต่างระดับบนสุดระหว่างรสชาติต่างๆของ R.
PagMax

5
และในขณะที่คุณเป็นแฟนตัวยงของการอ่านคู่มือนี้คุณควรอ่านคำถามจริงที่คุณลงคะแนนและตอบเฉพาะสำหรับสิ่งที่ถามในคำถามแทนที่จะทิ้งเนื้อหาจากเอกสาร
PagMax

คำตอบ:


56

เท่าที่ฉันเข้าใจและจากการตั้งค่าของฉันไม่มีความแตกต่างในการเข้ารหัส ความแตกต่างอยู่ที่การแสดงผล นามสกุลไฟล์เหมือนกัน

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

ป้อนคำอธิบายภาพที่นี่

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

ป้อนคำอธิบายภาพที่นี่

อย่างไรก็ตามหากคุณไม่มีสิ่งนั้นhtml_notebookในส่วนหัวคุณสามารถถักโค้ดของคุณเพื่อดูว่ามีลักษณะอย่างไร (ทั้งเล่ม) (โปรดละเว้นตัวเลือกเริ่มต้นเพิ่มเติมที่ฉันใส่ไว้ในรูปภาพ)

ป้อนคำอธิบายภาพที่นี่

และตัวเลือกในการดูตัวอย่างจะไม่แสดงในเมนูแบบเลื่อนลง

ป้อนคำอธิบายภาพที่นี่

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

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


2
เนื่องจากส่วนเสริมมีข้อบกพร่องเกี่ยวกับ UTC (โดยคำนึงถึงสำเนียงบัญชีและอักขระที่ไม่ใช่ภาษาอังกฤษ) กับโน้ตบุ๊ก มันจะทำให้เอาต์พุตและไฟล์ของคุณเสียหาย ... ดังนั้นควรทำเครื่องหมายลงไปดีกว่า ... ประเด็นนี้ยังคงได้รับการแก้ไข (เท่าที่ฉันรู้)
R. Prost

4
คำตอบของคุณคือสิ่งที่ฉันคิดว่าความแตกต่างคือหลังจากใช้ไปไม่กี่เดือน สิ่งที่เต้นได้คือ R Notebook คือทุกสิ่งและเหนือสิ่งที่ R MarkDown คือ ทำไมต้องต่อด้วย R Markdown? คุณสามารถใช้โน๊ตบุ๊ค R และ "ถัก" โดยตรงแทน "ดูตัวอย่าง" และคุณมีฟังก์ชัน R Markdown ของคุณ !!
PagMax

2
ฉันคิดว่ามีปัญหาเรื่องมรดกมากขึ้นเพื่อไม่ให้คนสับสนที่ใช้ Rmarkdown อยู่แล้ว นอกจากนี้โน้ตบุ๊กรุ่นปัจจุบัน (หรือ R) ยังมีข้อบกพร่องที่ฉันพูดถึงข้างต้นซึ่งทำให้ฉันไม่สามารถใช้งานได้โดยทั่วไป ข้อความของฉันถูกแทนที่ด้วยคำพูดพล่อยๆในไฟล์ต้นฉบับเช่นกันขึ้นอยู่กับว่าฉันใช้วิธีไหน (ตั้งแต่ rmardown ไปยังโน้ตบุ๊กหรือโน้ตบุ๊กไปจนถึง rmarkdown) ดังนั้นฉันจึงยึดติดกับ markdown จนกว่าจะแก้ไขได้ โดยเฉพาะอย่างยิ่งการแสดงตัวอย่างโน้ตบุ๊กนั้นไม่ได้มีประโยชน์สำหรับฉันเพียงแค่ดูข้อความโดยไม่มีพล็อตเป็นต้น แต่ก็มีศักยภาพมาก
R.Prost

42

เมื่อเร็ว ๆ นี้ฉันพบโพสต์นี้ซึ่งทำให้ฉันเข้าใจปัญหา R Markdown กับ R Notebook http://uc-r.github.io/r_notebook

บรรทัดที่เกี่ยวข้องมีดังนี้

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

นอกจากนี้ยังมีสิ่งนี้ในการถักเทียบกับการดูตัวอย่างเมื่อคุณสร้าง R Notebook ใน RStudio:

การแสดงตัวอย่างจะแสดงสำเนา HTML ที่แสดงผลของเนื้อหาของโปรแกรมแก้ไข ดังนั้นไม่เหมือนกับKnitคือPreviewจะไม่เรียกใช้โค้ด R ใด ๆ ผลลัพธ์ของกลุ่มเมื่อรันครั้งสุดท้ายในตัวแก้ไขจะปรากฏขึ้นแทน

หวังว่าจะเป็นประโยชน์


ส่วนที่สองนั้นเป็นประโยชน์อย่างยิ่งในการทำความเข้าใจความแตกต่าง!
gaelgarcia

15

ความแตกต่างที่สำคัญที่สุดประการหนึ่งยังไม่ชัดเจนจากคำตอบข้างต้น

จากส่วน 3.2.1.3 ของหนังสือ Bookdown :

นอกจากนี้ยังมีRestart R and Run All ChunksรายการในRunเมนูบนแถบเครื่องมือตัวแก้ไขซึ่งจะให้คุณมีเซสชัน R ใหม่ก่อนที่จะเรียกใช้ชิ้นส่วนทั้งหมด สิ่งนี้คล้ายกับKnitปุ่มซึ่งเรียกใช้เซสชัน R แยกต่างหากเพื่อรวบรวมเอกสาร

กล่าวอีกนัยหนึ่งการถักจะสร้างสภาพแวดล้อมใหม่และเรียกใช้โค้ดทั้งหมดที่นั่น ในทางตรงกันข้าม R Notebook ใช้ Global Environment เช่นเดียวกับการแสดงไฟล์ HTML ในความเป็นจริงสำหรับ R Notebook การเปลี่ยนแปลงในไฟล์ HTML จะเกิดขึ้นทุกครั้งที่.Rmdบันทึกเอกสาร Previewปุ่มเพียงเปิดไฟล์ HTML ในสถานะปัจจุบัน ไม่มีการรันโค้ด Previewหมายถึงสิ่งที่พูด: มันแสดงให้คุณเห็นว่าได้ทำอะไรไปแล้ว

ทำไมเรื่องนี้? ตัวอย่างเช่นหาก.Rmdเปิดไฟล์R Notebook แต่ไม่มีการเรียกใช้โค้ดส่วนไฟล์ HTML จะแสดงผล markdown และ input code ทั้งหมดได้ดี แต่จะไม่มีเอาต์พุตใด ๆ ปรากฏขึ้น หรือสมมติว่าคุณกำหนดตัวแปรบางตัวxในคอนโซล แต่ไม่ใช่ในโค้ดกลุ่ม หากคุณพยายามใช้xที่ไหนสักแห่งในโน๊ตบุ๊ค R มันจะทำงานได้ดี การดูตัวอย่างเอกสาร HTML ก็ใช้ได้เช่นกัน ในทางกลับกันการถักเอกสารจะทำให้เกิดข้อผิดพลาด "ตัวแปรที่ไม่รู้จัก" เนื่องจากการถักรันโค้ดทั้งหมดในสภาพแวดล้อมใหม่และxไม่เคยกำหนดตัวแปรในไฟล์ markdown ที่ใดเลย


7

ความแตกต่างคือใน R Notebok คุณสามารถเขียน Markdown และ R-code Chunks และดำเนินการโดยตรงและดูผลลัพธ์ได้ทันที มันเป็นโน้ตบุ๊กสำหรับตัวคุณเอง

R Markdown มีไว้เพื่อสร้างผลลัพธ์ที่ดูดีในรูปแบบ html, pdf หรือ word Document การรวม Markdown และ R-Code-Chunks แนะนำสั้นและแรงจูงใจที่สามารถพบได้ที่นี่

หากคุณต้องการรับข่าวสารเพิ่มเติมเกี่ยวกับแพ็คเกจถักคลิกที่นี่


2
ยังไม่สามารถอธิบายได้ว่า Markdown แตกต่างจาก Notebook อย่างไร (ฉันเข้าใจว่าโน้ตบุ๊กใช้ markdown) แต่ R markdown มีอยู่ก่อนโน้ตบุ๊ก R ที่เปิดตัวเมื่อปีที่แล้ว แล้วฟีเจอร์ใหม่ ๆ ในโน๊ตบุ๊ค R ซึ่งก่อนหน้านี้ไม่สามารถทำได้โดยใช้ R markdown?
PagMax

3
@PagMax ฉันคิดว่าความแตกต่างอยู่ที่ความเร็วในการแสดงผล html ของคุณจากไฟล์ Rmarkdown ของคุณ เมื่อคุณต้องการใช้ knitr เพื่อสร้างเอาต์พุต html ของ R markdown ของคุณต้องใช้เวลาสักหน่อยในการ "ถัก" โค้ดทั้งหมดของคุณและสร้างเอาต์พุต เพื่อเพิ่มความเร็วคุณสามารถดู Rmarkdown ของคุณใน html โดยใช้ "โหมด" ของ Rnotebook ใน Rstudio โดยการเปลี่ยนผลลัพธ์ของคุณเป็น "html_notebook" ซึ่งจะช่วยให้คุณสามารถเรียกใช้งานชิ้นส่วนซ้ำจากนั้นทำ ctrl + shift + k (พีซี) และ html จะรีเฟรชเร็วมาก
chang02_23

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

@BryanGoggin คุณยังสามารถเรียกใช้งานชิ้นส่วนอิสระใน Rmd ได้เช่นกัน
PagMax

5

นี่คือความแตกต่างในทางปฏิบัติอย่างหนึ่งที่ฉันพบ:

เมื่อคุณต้องการจะแสดงความคิดเห็นออกเป็นส่วนหนึ่งของข้อความแทรก RMarkdown #ในบรรทัดของข้อความของคุณทุกขณะ RNotebook เรียบร้อยสุนทรีข้อความระหว่างคู่เดียวของ<!--, --->สัญญาณ (ในขณะที่ไฟล์ HTML)

อาจกล่าวได้ว่าช่างเป็นความแตกต่างเล็กน้อย อย่างไรก็ตามด้วยเหตุนี้ฉันจึงใช้ R Notebook (แทนที่จะเป็น RMarkdown) ใน RStudio สำหรับเอกสารทั้งหมดของฉันเสมอ ในทุกสิ่งดูเหมือนกัน (อย่างน้อยก็สำหรับความต้องการของฉันเช่นการสร้าง html และ pdf)

มิฉะนั้นความคิดเห็นของฉันก็กลายเป็นส่วนหัวทันทีเช่นด้านล่าง:

# This part is commented out, but will show as Heading 1 font text

4

http://rmarkdown.rstudio.com/r_notebooks.html#notebook_file

"เอกสาร R Markdown ทั่วไปเป็นแบบ" ถัก "แต่สมุดบันทึกจะถูก" ดูตัวอย่าง "แม้ว่าการแสดงตัวอย่างสมุดบันทึกจะดูคล้ายกับเอกสาร R Markdown ที่แสดงผล แต่การแสดงตัวอย่างสมุดบันทึกจะไม่เรียกใช้ส่วนรหัส R ของคุณ"


2
ฉันเห็นด้วย. คุณลักษณะ "ดูตัวอย่าง" เป็นเพียงตัวบ่งชี้ความแตกต่างระหว่างทั้งสอง ฉันสงสัยว่าทำไมพวกเขาถึงใช้ Rmarkdown ในเมื่อ Rnotebook คือทุกสิ่งที่ Rmarkdown มีคุณสมบัติการแสดงตัวอย่างเพิ่มเติม
PagMax

4

Similarites:สมุดบันทึก R และเอกสาร R Markdown นั้นค่อนข้างคล้ายกันมาก รูปแบบ Markdown ใช้ได้กับไฟล์ทั้งสองประเภท ทั้งสองรูปแบบไฟล์สามารถใช้ในการสื่อสารรหัสพร้อมกับผลลัพธ์และคำอธิบายกับผู้อื่น คุณสามารถเลือกที่จะถักเอกสารที่สร้างขึ้นเป็นรูปแบบเอาต์พุต HTML, PDF และ WORD หากมีข้อผิดพลาดในโค้ดเอาต์พุตจะไม่ถูกสร้างขึ้น ในการเรียกใช้ไฟล์: CTRL + SHIFT + K และเพื่อแทรกโค้ด chunk: CTRL + ALT + I

เอกสาร R Markdown:สามารถกำหนดค่าเอกสาร Rmd ผ่านวิซาร์ดและมีตัวเลือกสำหรับการทำซ้ำเอกสารสไลด์การนำเสนอแอพเงา ฯลฯ และตัวเลือกในการสร้างเอกสารจากเทมเพลต หากคุณเปลี่ยนรหัสระบบจะดำเนินการ ouput ในเอาต์พุต Rmd ไม่มีตัวเลือกในการดูตัวอย่างเอกสาร ส่วนหัว YAML มีรูปแบบเอาต์พุตเป็นเอาต์พุต: html_document

R Notebook Document: เอกสาร R nb ถูกเรียกใช้โดยตรงและไม่มีวิซาร์ด (เช่นในกรณีของ. RMD) ปรากฏขึ้น นอกเหนือจากไฟล์โน้ตบุ๊กแล้วไฟล์ html เพิ่มเติมที่นามสกุล * .nb.html จะถูกสร้างขึ้น สมุดบันทึกมีตัวเลือกสำหรับการแสดงตัวอย่าง หากมีการเปลี่ยนแปลงหรือแก้ไขโค้ดใด ๆ เอาต์พุตใหม่จะไม่แสดง ผลลัพธ์จะแสดงในตัวแก้ไขโค้ดเอง ไม่ว่าเอาต์พุตเก่าจะแสดงผลเป็นอย่างไร ไม่มีการสร้างผลลัพธ์ใหม่จากการเปลี่ยนแปลงรหัส ในการแสดงเอาต์พุตโค้ดเราจำเป็นต้องดำเนินการชิ้นส่วนแล้วจึงจะปรากฏในเอาต์พุต ส่วนหัว YAML มีเอาต์พุตเป็น: เอาต์พุต: html_notebook

ส่วนหัว YAML : ถ้าเราเปลี่ยนส่วนหัว YAML จากไฟล์หนึ่งไปเป็นอีกไฟล์หนึ่งจะเป็นการเปลี่ยนประเภทของเอกสาร ตัวอย่างเช่นคุณมีสมุดบันทึก R ที่มีส่วนหัว YAML เป็น html_notebook หากคุณเปลี่ยนส่วนหัว YAML สมุดบันทึก R ของคุณจะถูกแปลงเป็นเอกสาร R Markdown

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


3

จากjrnold :

ไฟล์โน้ตบุ๊ก R แสดงเอาต์พุตภายในตัวแก้ไขขณะที่ซ่อนคอนโซล ไฟล์ R markdown แสดงเอาต์พุตภายในคอนโซลและไม่แสดงเอาต์พุตภายในตัวแก้ไข ค่าของผลลัพธ์ในส่วนหัว YAML ต่างกัน
ส่วนหัว YAML สำหรับโน้ตบุ๊ก R จะมีบรรทัด

---
ouptut: html_notebook
---

ส่วนหัว YAML สำหรับไฟล์ R markdown จะมีบรรทัด

ouptut: html_document

การคัดลอกส่วนหัว YAML จากสมุดบันทึก R ไปยังไฟล์ R markdown จะเปลี่ยนเป็นไฟล์ R markdown และในทางกลับกัน โดยเฉพาะอย่างยิ่งการเปลี่ยนค่าของoutputเป็นเนื่องจาก RStudio IDE เมื่อเปิดและแพ็กเกจrmarkdownเมื่อถักใช้ส่วนหัว YAML ของไฟล์และโดยเฉพาะอย่างยิ่งค่าของoutputคีย์ในส่วนหัว YAML เพื่อกำหนดประเภทของเอกสาร คือ.

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