การแนะนำการเขียนโปรแกรมด้วยภาษา R
หลักสูตรนี้เป็นการแนะนำอย่างละเอียดเกี่ยวกับสภาพแวดล้อมภาษา R โดยครอบคลุมหัวข้อหลักตั้งแต่การดำเนินการพื้นฐานกับเวกเตอร์ตัวเลข คุณสมบัติของวัตถุ การจัดการอาร์เรย์และเมทริกซ์ การจัดการลิสต์และเฟรมข้อมูล ไปจนถึงการสร้างแบบจำลองทางสถิติและการผลิตกราฟิกคุณภาพสูง มีความเหมาะสมอย่างยิ่งในฐานะหนังสือแนะนำสำหรับการวิเคราะห์ทางสถิติและวิทยาศาสตร์ข้อมูล
ภาพรวมคอร์สเรียน
📚 สรุปเนื้อหา
หลักสูตรนี้เป็นการแนะนำอย่างครอบคลุมเกี่ยวกับสภาพแวดล้อมภาษา R โดยครอบคลุมหัวข้อหลักตั้งแต่การดำเนินการพื้นฐานกับเวกเตอร์เชิงตัวเลข คุณสมบัติของวัตถุ และการจัดการอาร์เรย์/เมทริกซ์ ไปจนถึงการจัดการลิสต์และเฟรมข้อมูล การสร้างแบบจำลองทางสถิติ และการผลิตกราฟิกคุณภาพสูง เป็นหนังสือเรียนแนะนำที่เหมาะสมสำหรับการวิเคราะห์ทางสถิติและการวิเคราะห์ข้อมูล
จัดการกับแก่นกลางของภาษา R และเปิดประตูสู่การคำนวณทางสถิติและการแสดงผลข้อมูล
ผู้เขียน: กลุ่มพัฒนาภาษา R
ขอบคุณ: เอกสารฉบับนี้ได้รับการดูแลโดยกลุ่มพัฒนาภาษา R ฉบับแปลภาษาจีนได้รับการสนับสนุนจากงานแปลภาษาญี่ปุ่นของ Shigeru MASE และความพยายามของทีมแปลภาษาจีน เช่น ดร. ZP Li, ดร. Rui Li
🎯 เป้าหมายการเรียนรู้
- เริ่มต้นเซสชันของ R นำทางระบบช่วยเหลือ และประยุกต์ใช้กฎไวยากรณ์เบื้องต้น (ความไวต่อตัวพิมพ์ใหญ่-เล็ก การกำหนดค่า และคอมเมนต์)
- แยกแยะและสร้างเวกเตอร์ตรรกะ เวกเตอร์ตัวอักษร และจัดการค่าที่หายไป (
NAและNaN) - ใช้เทคนิคการดัชนี 4 แบบเพื่อเลือก ยกเลิก หรือปรับเปลี่ยนชุดย่อยข้อมูลเฉพาะ
- ระบุและปรับเปลี่ยนคุณสมบัติภายใน (ประเภทและความยาว) ของวัตถุใน R
- ใช้ฟังก์ชัน
class()และattr()เพื่อจัดการเมตาดาต้าและโครงสร้างข้อมูลของวัตถุ - สร้างและจัดการแฟกเตอร์และแฟกเตอร์ที่มีลำดับเพื่อแสดงข้อมูลเชิงหมวดหมู่
- กำหนดและสร้างอาร์เรย์และเมทริกซ์โดยใช้เวกเตอร์มิติและฟังก์ชัน
array() - ประยุกต์ใช้เทคนิคการดัชนีขั้นสูง รวมถึงการใช้เมทริกซ์ดัชนีเพื่อดึงหรือปรับเปลี่ยนองค์ประกอบเฉพาะ
- ดำเนินการปฏิบัติการทางพีชคณิตเชิงเส้น เช่น ผลคูณภายนอก ทรานสโพสทั่วไป และการหาเมทริกซ์ย้อนกลับ
- สร้างและแก้ไขลิสต์: สร้างลิสต์ที่มีชื่อและไม่มีชื่อ และรวมกันด้วยไวยากรณ์เฉพาะของ R
🔹 บทเรียนที่ 1: การแนะนำเกี่ยวกับ R และพื้นฐานเวกเตอร์
ภาพรวม: บทเรียนนี้นำเสนอสภาพแวดล้อมพื้นฐานของ R ครอบคลุมไวยากรณ์พื้นฐาน การดำเนินการคำสั่ง และระบบช่วยเหลือ นอกจากนี้ยังสำรวจประเภทเวกเตอร์เฉพาะ เช่น เวกเตอร์ตรรกะ เวกเตอร์ตัวอักษร และค่าที่หายไป พร้อมทั้งให้วิธีการเฉพาะเจาะจงในการเลือกและปรับเปลี่ยนชุดย่อยข้อมูลผ่านเวกเตอร์ดัชนี
ผลลัพธ์การเรียนรู้:
- เริ่มต้นเซสชันของ R นำทางระบบช่วยเหลือ และประยุกต์ใช้กฎไวยากรณ์เบื้องต้น (ความไวต่อตัวพิมพ์ใหญ่-เล็ก การกำหนดค่า และคอมเมนต์)
- แยกแยะและสร้างเวกเตอร์ตรรกะ เวกเตอร์ตัวอักษร และจัดการค่าที่หายไป (
NAและNaN) - ใช้เทคนิคการดัชนี 4 แบบเพื่อเลือก ยกเลิก หรือปรับเปลี่ยนชุดย่อยข้อมูลเฉพาะ
🔹 บทเรียนที่ 2: คุณสมบัติของวัตถุและการจัดการแฟกเตอร์
ภาพรวม: บทเรียนนี้ครอบคลุมคุณสมบัติพื้นฐานของวัตถุใน R โดยเฉพาะคุณสมบัติภายใน เช่น ประเภทและความยาว และวิธีตรวจสอบหรือปรับเปลี่ยนได้ ยังสำรวจ "แฟกเตอร์" — โครงสร้างข้อมูลเฉพาะสำหรับจัดการตัวแปรหมวดหมู่ — และแสดงวิธีใช้ฟังก์ชัน tapply() เพื่อวิเคราะห์ทางสถิติแบบกลุ่มตามระดับแฟกเตอร์
ผลลัพธ์การเรียนรู้:
- ระบุและปรับเปลี่ยนคุณสมบัติภายใน (ประเภทและความยาว) ของวัตถุใน R
- ใช้ฟังก์ชัน
class()และattr()เพื่อจัดการเมตาดาต้าและโครงสร้างข้อมูลของวัตถุ - สร้างและจัดการแฟกเตอร์และแฟกเตอร์ที่มีลำดับเพื่อแสดงข้อมูลเชิงหมวดหมู่
🔹 บทเรียนที่ 3: อาร์เรย์ เมทริกซ์ และพีชคณิตเชิงเส้น
ภาพรวม: บทเรียนนี้สำรวจความสามารถที่แข็งแกร่งของ R ในการจัดการข้อมูลหลายมิติผ่านอาร์เรย์และเมทริกซ์ นักเรียนจะได้เรียนรู้วิธีกำหนดโครงสร้างข้อมูลโดยใช้เวกเตอร์มิติ ดำเนินการดัชนีที่ซับซ้อน และดำเนินการปฏิบัติการพีชคณิตเชิงเส้นพื้นฐาน เช่น การคูณเมทริกซ์ การหาเมทริกซ์ย้อนกลับ และการแยกตัวประกอบ ซึ่งจำเป็นต่อการคำนวณทางสถิติและการวิเคราะห์ข้อมูล
ผลลัพธ์การเรียนรู้:
- กำหนดและสร้างอาร์เรย์และเมทริกซ์โดยใช้เวกเตอร์มิติและฟังก์ชัน
array() - ประยุกต์ใช้เทคนิคการดัชนีขั้นสูง รวมถึงการใช้เมทริกซ์ดัชนีเพื่อดึงหรือปรับเปลี่ยนองค์ประกอบเฉพาะ
- ดำเนินการปฏิบัติการพีชคณิตเชิงเส้น เช่น ผลคูณภายนอก ทรานสโพสทั่วไป และการหาเมทริกซ์ย้อนกลับ
🔹 บทเรียนที่ 4: การจัดการข้อมูล: ลิสต์ แฟรมข้อมูล และการรับ-ส่งข้อมูล
ภาพรวม: บทเรียนนี้ครอบคลุมพื้นฐานการจัดการโครงสร้างข้อมูลที่ซับซ้อนและข้อมูลภายนอกใน R โฟกัสที่ลิสต์ — ตัวบรรจุที่ยืดหยุ่นที่เก็บองค์ประกอบที่มีประเภทต่างกัน — และรายละเอียดของการรับ-ส่งข้อมูล (I/O) รวมถึงการอ่านไฟล์ภายนอกเข้าสู่โครงสร้างลิสต์หรือเมทริกซ์ การเข้าถึงชุดข้อมูลภายในแพ็กเกจ และการใช้เครื่องมือแก้ไขแบบโต้ตอบเพื่อปรับเปลี่ยนข้อมูล
ผลลัพธ์การเรียนรู้:
- สร้างและแก้ไขลิสต์: สร้างลิสต์ที่มีชื่อและไม่มีชื่อ และรวมกันด้วยไวยากรณ์เฉพาะของ R
- การเข้าถึงองค์ประกอบ: แยกแยะและประยุกต์ใช้เทคนิคการดัชนีต่างๆ (
[[ ]],[ ], และ$) เพื่อเรียกข้อมูลลิสต์ - การนำเข้าข้อมูลภายนอก: ใช้ฟังก์ชัน
scan()เพื่ออ่านข้อมูลจากไฟล์ภายนอกเข้าสู่ลิสต์หรือเมทริกซ์ที่มีโครงสร้าง
🔹 บทเรียนที่ 5: การแจกแจงความน่าจะเป็นและการทดสอบทางสถิติ
ภาพรวม: บทเรียนนี้ให้แนวทางครอบคลุมในการจัดการการแจกแจงความน่าจะเป็นและการอนุมานทางสถิติใน R นักเรียนจะได้เรียนรู้การใช้ระบบคำนำหน้ามาตรฐานของ R (d, p, q, r) สำหรับฟังก์ชันการแจกแจง การสร้างสถิติอธิบาย และการประเมินข้อมูลเชิงภาพด้วยฟังก์ชันการแจกแจงสะสมเชิงประจักษ์ (ecdf) และแผนภูมิควอไทล์-ควอไทล์ (Q-Q plot)
ผลลัพธ์การเรียนรู้:
- จัดการกับรหัสการแจกแจงของ R (คำนำหน้า d, p, q, r) และนำไปใช้กับการแจกแจงมาตรฐาน เช่น ปกติ ที และเอฟ
- สร้างและตีความเครื่องมือวิเคราะห์เชิงภาพโดยเฉพาะฟังก์ชันการแจกแจงสะสมเชิงประจักษ์ (ecdf) และแผนภูมิควอไทล์-ควอไทล์ (Q-Q plot) เพื่อประเมินความเหมาะสมของรูปแบบการแจกแจง
- ดำเนินการและแยกแยะระหว่างการทดสอบพารามิเตอร์และไม่พารามิเตอร์ รวมถึงการทดสอบทีแบบเวลช์ ทดสอบความเป็นปกติของชาร์โปว์-วิลก์ และการทดสอบโคลโมโกรอฟ-สมิร์โนฟ
🔹 บทเรียนที่ 6: การควบคุมโปรแกรมและตรรกะการวนซ้ำ
ภาพรวม: บทเรียนนี้ครอบคลุมกลไกพื้นฐานในการควบคุมการดำเนินการใน R มุ่งเน้นการจัดกลุ่มการแสดงออกหลายอย่างเป็นหน่วยเดียว และใช้คำสั่งควบคุม — รวมถึงการแบ่งแยกเงื่อนไข (if-else) และโครงสร้างการวนซ้ำต่างๆ (for, repeat, และ while) — เพื่อทำให้การวิเคราะห์ข้อมูลอัตโนมัติและจัดการตรรกะที่ซับซ้อน
ผลลัพธ์การเรียนรู้:
- จัดกลุ่มการแสดงออกของ R หลายรายการเป็นประโยคเดียวโดยใช้เครื่องหมายวงเล็บ
- ใช้ตรรกะเงื่อนไขเพื่อให้ดำเนินการบล็อกโค้ดเฉพาะตามเกณฑ์ตรรกะ
- สร้างลูปการวนซ้ำเพื่อทำให้การดำเนินการซ้ำๆ บนโครงสร้างข้อมูล เช่น เวกเตอร์และลิสต์ ทำงานอัตโนมัติ
🔹 บทเรียนที่ 7: การพัฒนาฟังก์ชันเฉพาะตัวและแนวคิดการจำกัดขอบเขต
ภาพรวม: บทเรียนนี้สำรวจการเปลี่ยนแปลงจากการใช้ R เป็นเครื่องคิดเลขแบบโต้ตอบไปสู่การใช้เป็นภาษาโปรแกรม โดยการพัฒนาฟังก์ชันเฉพาะตัว ครอบคลุมไวยากรณ์การกำหนดฟังก์ชัน การจัดการพารามิเตอร์ การทำงานตามกฎการจำกัดขอบเขตแบบเล็กซิคัล และแนวคิดพื้นฐานของระบบวัตถุแบบโอเพนโอเรียนท์ (S3) ใน R ผ่านฟังก์ชันทั่วไปและเมธอด
ผลลัพธ์การเรียนรู้:
- สร้างและเรียกใช้ฟังก์ชันเฉพาะตัว: กำหนดฟังก์ชันด้วยพารามิเตอร์ที่ชัดเจนและตัวดำเนินการไบนารีเฉพาะ
- จัดการพารามิเตอร์และการจำกัดขอบเขต: แยกแยะระหว่างการจับคู่พารามิเตอร์ตำแหน่งและชื่อ และอธิบายว่าการจำกัดขอบเขตแบบเล็กซิคัลจัดการตัวแปรท้องถิ่นและตัวแปรเสรีอย่างไร
- ใช้สถานะที่เปลี่ยนแปลงได้และสภาพแวดล้อมเฉพาะ: ใช้คลอเจอร์และตัวดำเนินการกำหนดค่าขั้นสูงเพื่อรักษาสถานะและปรับแต่งสภาพแวดล้อมของ R ผ่านฟังก์ชันเริ่มต้น/เซสชัน
🔹 บทเรียนที่ 8: การสร้างแบบจำลองทางสถิติ: แบบเชิงเส้นและไม่เชิงเส้น
ภาพรวม: บทเรียนนี้สำรวจชุดเครื่องมือที่ครอบคลุมใน R สำหรับการสร้างแบบจำลองทางสถิติที่นอกเหนือจากโมเดลการถดถอยเชิงเส้นพื้นฐาน ครอบคลุมการดึงข้อมูลโมเดลผ่านฟังก์ชันทั่วไป การเปรียบเทียบโมเดลโดยใช้ตาราง ANOVA และการตั้งค่าโมเดลเชิงเส้นทั่วไป (GLMs) สำหรับข้อมูลแบบไบนารีและจำนวน พร้อมทั้งเทคนิคการสร้างแบบจำลองไม่เชิงเส้น
ผลลัพธ์การเรียนรู้:
- ใช้ฟังก์ชันทั่วไปของ R เพื่อดึง สรุป และแสดงข้อมูลจากโมเดลที่ตั้งค่าแล้ว
- ทำการเปรียบเทียบโมเดลโดยใช้ตาราง ANOVA และอัปเดตโมเดลเดิมด้วยไวยากรณ์ที่มีประสิทธิภาพ
- ตั้งค่าโมเดลเชิงเส้นทั่วไป (GLMs) โดยใช้ครอบครัวและฟังก์ชันลิงก์ที่เหมาะสม (เช่น โลจิท โปรบิต พอยซอน)
🔹 บทเรียนที่ 9: การแสดงผลข้อมูลด้วยกราฟิกระดับสูงและต่ำ
ภาพรวม: บทเรียนนี้ครอบคลุมความสามารถทางกราฟิกที่ครอบคลุมของ R โดยแยกแยะระหว่างฟังก์ชันการวาดกราฟระดับสูงที่สร้างแผนภูมิครบวงจร และคำสั่งระดับต่ำที่เพิ่มองค์ประกอบเฉพาะลงในภาพที่มีอยู่แล้ว นักเรียนจะได้เรียนรู้การปรับแต่งพารามิเตอร์ทางกราฟิกเพื่อควบคุมด้านศิลปะอย่างแม่นยำ และจัดการสภาพแวดล้อมกราฟิกหลายตัว
ผลลัพธ์การเรียนรู้:
- แยกแยะและประยุกต์ใช้ฟังก์ชันกราฟิกระดับสูง (เช่น
plot(),hist()) และระดับต่ำ (เช่นpoints(),lines()) - ใช้และจัดการพารามิเตอร์ทางกราฟิกโดยใช้การตั้งค่าถาวร (
par()) และชั่วคราว (ระดับฟังก์ชัน) - จัดการเลเยอร์ที่ซับซ้อน รวมถึงการแสดงข้อมูลหลายตัวแปรและสภาพแวดล้อมกราฟิกหลายตัว
🔹 บทเรียนที่ 10: ระบบนิเวศแพ็กเกจและการกำหนดค่าสภาพแวดล้อม
ภาพรวม: บทเรียนนี้สำรวจโครงสร้างพื้นฐานของ R โดยเน้นที่ระบบนิเวศแพ็กเกจ บทบาทของ CRAN และกลไกของ namespaces สำหรับจัดการฟังก์ชัน ยังให้แนวทางปฏิบัติสำหรับการใช้งาน R ผ่านหลายช่องทาง และการควบคุมสภาพแวดล้อมการเริ่มต้นโดยใช้พารามิเตอร์บรรทัดคำสั่งและแป้นลัดคีย์บอร์ด
ผลลัพธ์การเรียนรู้:
- เข้าใจความสัมพันธ์ระหว่างแพ็กเกจ namespace และระบบคลังข้อมูล CRAN
- ดำเนินการเซสชันตัวอย่างที่ครอบคลุม รวมถึงการจัดการข้อมูล การสร้างแบบจำลองทางสถิติ และการวาดแผนภูมิทางคณิตศาสตร์ที่ซับซ้อน
- กำหนดสภาพแวดล้อมเริ่มต้นของ R โดยใช้แฟล็กบรรทัดคำสั่งและตัวแปรสภาพแวดล้อม