เมื่อวันก่อนได้มีโอกาสทดลงสร้างรายงานจากไฟล์ในรูปแบบ Rmarkdown(.rmd) ซึ่งการสร้างรายงานในรูปแบบไฟล์นี้ จะเป็นรายงานที่มีทั้งข้อความอธิบายเนื้อหา, มีโค้ดภาษา R ที่สามารถเพิ่มขึ้นมาใช้อธิบายประกอบขั้นตอนการวิเคราะห์ข้อมูล พร้อมทั้งยังสามารถแสดงผลข้อมูลโค้ดดังกล่าวในรูปแบบตัวอักษร, โค้ดอธิบายการคำนวณ พร้อมกับรันโปรแกรมในส่วนของโค้ดดังกล่าวแล้วเอาผลการรันโปรแกรมในส่วนนั้นมาแสดงต่อจากโค้ดนั้นได้เลย ซึ่งผลที่ได้จากการรันโปรแกรมก็อาจจะเป็นได้ทั้งตัวหนังสือ, ตัวเลข, กราฟ หรือข้อมูลรูปแบบอื่นๆ ที่เกิดจากการประมวลผลโค้ดในส่วนนั้น
ไฟล์ .rmd มีประโยชน์มาก เพราะบางทีที่เราต้องการจะเอาโค้ดภาษา R ส่งไปให้คนอื่นทำความเข้าใจและเพื่อจะดูผลลัพท์จากการคำนวณ หรือดูเป็นกราฟที่ประมวลผลออกมาได้จากโค้ดในส่วนนี้ แต่บางทีพอส่งแต่โค้ด .R ไป เครื่องคอมพิวเตอร์ของคนอื่นอาจจะมี library ไม่พร้อม หรือเวอร์ชันของ library ต่างๆ ไม่ตรงกันกับที่เจ้าของโค้ดใช้งาน อาจจะทำให้รันผลออกมาไม่ได้ หรือว่าบางทีค่าต่างๆ ผิดเพี้ยนไปบ้าง แต่เมื่อเป็นไฟล์รายงานที่ถูกเขียนด้วยไฟล์ .rmd เจ้าของรายงานสามารถเลือกสร้างรายงานออกมาในรูปแบบ .html, .pdf ได้ ซึ่งการสร้างรายงานออกมาในรูปแบบรายงานด้วยไฟล์ประเภทนี้ ผู้รับไฟล์สามารถเอาไฟล์ .html, .pdf ไปอ่านทำความเข้าใจได้เลย ไม่จำเป็นต้องติดตั้งโปรแกรมภาษา R ในเครื่องคอมพิวเตอร์และรันโปรแกรมซ้ำอีก และยังเป็นไฟล์ที่สามารถอ่านทั้งข้อมูลที่เป็นส่วนอธิบายโปรแกรม, ส่วนของโค้ดที่ใช้เขียนโปรแกรมนั้น และผลลัพท์ที่ได้จากการรันโปรแกรมในแต่ละส่วนๆ ย่อยๆ นั้น
เนื่องจากเวลาต้องการจะกดสร้างรายงานจากไฟล์ .rmd ให้เป็นรายงานในรูปแบบ .html หรือ .pdf เครื่องคอมพิวเตอร์ของเรานอกจากจะใช้ทรัพยากรในคอมพิวเตอร์ส่วนนึงในการรันโค้ดภาษา R ในแต่ละส่วนย่อยที่เขียนประกอบอยู่ในรายงานแล้ว ก็ยังจำเป็นที่จะต้องใช้ทรัพยากรอีกส่วนหนึ่งในการสร้างรายงานในส่วนตัวอักษรให้ออกมาเป็นรูปแบบไฟล์ .html, .pdf อีกด้วย จึงจำเป็นต้องใช้ทรัพยากรมากขึ้นกว่าตอนรันโค้ดเปล่าที่เป็นภาษา R อย่างเดียวค่อนข้างมาก ทำให้บางทีเวลาต้องสร้างรายงานและโปรแกรมเรามีโค้ดที่ใช้ทรัพยากรเยอะ บางทีอาจทำให้เครื่องคอมพิวเตอร์ของเราค้างได้เพราะทรัพยากรไม่พอ
วิธีนึงที่เจอและคิดว่าจะช่วยลดปัญหาการใช้ทรัพยากรเยอะเกินไปในช่วงระหว่างที่เราสั่งสร้างรายงานจาก .rmd เป็น .html หรือ .pdf ก็คือ การแยกโค้ดในส่วนที่เรารู้ว่ากินทรัพยากรเยอะไปประมวลผลแยก(อาจจะไปรันโปรแกรมส่วนนั้นใน .R ไฟล์ต่างหาก) แล้วเอาผลลัพท์จากการคำนวณดังกล่าว ไปบันทึกใส่ไฟล์เอาไว้ก่อน ซึ่งใน R นั้นเราสามารถบันทึก R object เอาไว้ในรูปแบบของไฟล์ .rds โดยสามารถเรียกฟังก์ชัน saveRDS(“ชื่อไฟล์.RDS”, “ชื่อ object ที่เราเก็บค่าที่คำนวณไว้”) และเมื่อในรายงานเราต้องการโหลด object นี้ขึ้นมาใช้งานจริงเราก็ค่อยเรียกโหลดขึ้นมาโดยใช้ฟังก์ชัน readRDS(“ชื่อไฟล์.RDS”) และนำไฟล์เหล่านั้นไปใช้งานในรายงานของเราต่อไป
พอลองแยกส่วนที่กินทรัพยาการเยอะๆ ไปประมวลผลแล้วบันทึกไว้ก่อน พอโค้ดส่วนไหนจะใช้ก็ค่อยเรียกโหลดขึ้นมาจากไฟล์แบบนี้ ก็ช่วยให้ขั้นตอนการสร้างรายงานจาก .rmd ไปเป็น .html หรือ .pdf โอกาสที่เครื่องคอมพิวเตอร์จะค้างก็มีน้อยลงไปด้วย