หายไปสักพักเลยนะครับ พอดีผมเพิ่งจะว่างเขียนตอนต่อของครั้งที่แล้วที่เราลองลงโปรแกรม R Commander กัน วันนี้จะมาขอเสนอวิธีการนำเข้าข้อมูลจาก Excel เข้าตัวโปรแกรม R Commander ครับ ซึ่งไม่ยากเลยครับ
ตัวโปรแกรม R Commander จริงๆ แล้วสนับสนุนการนำเข้าไฟล์ข้อมูลจากหลายแหล่งครับ ไม่ว่าจะเป็นไฟล์ของ SPSS, Stata, SAS ก็สามารถเอาข้อมูลที่มีอยู่แล้วมาเปิดได้ครับ แต่วันนี้ผมจะขอเสนอวิธีการนำเข้าจาก Excel เนื่องจากคิดว่าน่าจะเป็นแหล่งเก็บข้อมูลโปรเจคเล็กๆ ของใครๆ หลายๆ คนนะครับ ก่อนอื่นเลยก็อยากจะให้ย้อนไปเตรียมข้อมูลใน Excel ให้เหมาะสมกับการนำเข้ามาในโปรแกรมวิเคราะห์ทางสถิติ ซึ่งสามารถหาอ่านได้จากบล็อกตอนเก่านะครับ (http://www.clinicalepi.com/2015/05/blog-post.html)
วิธีการเอาข้อมูลที่อยู่ในไฟล์ .XLSX เข้าโปรแกรม R Commander ไม่ยากเลยครับ สมมติว่าผมมีข้อมูลใน Excel แบบนี้นะครับ
จะสังเกตว่าข้อมูลของผม อยู่ในไฟล์ Excel ที่ชื่อว่า brugada.xlsx และอยู่ใน Sheet1 นะครับ แถวแรก เป็นชื่อตัวแปรทั้งหมด และข้อมูลมีถึงคอลัมน์ P แถวที่ 2510 (ไม่ได้โชว์ในรูปข้างบนให้ครบครับเนื่องจากมันยาวมาก)
2. เลือกเมนู Data -> Import data -> from Excel File
3. จะปรากฎหน้าต่าง Import Excel Data Set ให้ตั้งค่าก่อนครับ
โดยเราตั้งค่าดังนี้นะครับ
5. ถ้าไฟล์เรามีหลาย Sheet โปรแกรมอาจจะขึ้นมาให้เลือก Sheet ที่เราต้องการด้วยครับ แต่ถ้ามี Sheet เดียวมันก็จะ Import มาให้เลย โดยสามารถดูสถานะได้ที่ด้านล่างของ R Commander ครับ
6. ทีนี้ถ้าเราต้องการจะดูว่าข้อมูลเป็นอย่างไร มีทางเลือกสองอย่างคือปุ่มด้านบนครับ
ปุ่ม Dataset ที่เป็นตัวสีน้ำเงินคือเราสามารถเลือกไฟล์ที่กำลังวิเคราะห์ได้ (ถ้าเปิดหลายไฟล์) ปุ่มถัดมาคือ Edit data set ถ้าคลิกก็จะขึ้นหน้าต่าง Data Editor ในตัวโปรแกรม R ให้แก้ไขได้ครับ (แก้ได้ด้วยการดับเบิ้ลคลิ้ก) แบบนี้
ทั้งนี้ผมไม่แนะนำให้แก้ข้อมูลแบบนี้ครับเพราะหมายความว่าถ้าแก้ตรงนี้เราจะไม่ได้ไปแก้ในฐานข้อมูล Excel ด้วย จะทำให้งงถ้าเราปิด R ไปแล้ว import ข้อมูลมาใหม่นะครับ เราควรจะแก้ที่ฐานข้อมูลใน Excel เลย แล้วค่อย import มาใหม่ ยกเว้นกรณีจำเป็นมากๆ จริงๆ ครับ แก้เสร็จแล้วก็กดปุ่มปิดด้านบนขวาได้ครับ
แต่ถ้าเรากดปุ่ม View data set จะขึ้นหน้าต่างแบบนี้แทนครับ ไม่สามารถแก้ไขข้อมูลได้ครับ
ทั้งนี้ ตอนนี้ข้อมูลก็เข้ามาอยู่ในโปรแกรม R Commander ให้ใช้แล้วครับ เช่นเราอยากทดลองหา Descriptive Statistics อย่างค่าเฉลี่ย ของอายุ (ตัวแปร age) ก็ให้ใช้คำสั่ง Statistics -> Summaries -> Numerical summaries
จะปรากฎหน้าต่างให้เลือกตัวแปรครับ ก็เลือก age
ถ้าอยากจะเจาะจงด้วยว่าจะให้คำนวณอะไรให้บ้าง ก็เลือกแท็บ Statistics ด้านขวา ก็จะมีให้เลือกย่อยครับ แต่โปรแกรมจะเลือกค่าที่เราใช้บ่อยๆ ให้อัตโนมัติอยู่แล้ว นั่นก็คือค่า Mean, SD, IQR, Quantile ที่ 0 .25 .5 .75 1 (ถ้ายังจำกัดได้ Quantile 0.5 ก็คือ Median นั่นเอง และ 0 = min, 1 ก็ max)
เมื่อเรากด OK ตัวโปรแกรมจะแสดงผลออกมาในช่อง Output เป็นตัวสีน้ำเงินหลังจากคำสั่งคล้ายแบบนี้นะครับ
ก็คือ ในตัวแปร age นี้มีข้อมูลอยู่ทั้งหมด 2509 คน (ด้านขวาสุด) มีค่า mean อยู่ที่ 31.56556 ค่า sd = 4.968339, IQR 9, Median 32, Minimum 23, Maximum 41 นั่นเองครับ
อยากจะให้สังเกตกันดีๆ ก่อนจะเอาค่าที่ได้ไปกรอกหรือทำตารางสรุปนะครับว่า
เป็นอย่างไรบ้างครับ พอจะทำกันได้บ้างไหมครับ ยังไงลองเล่นกับข้อมูลดูนะครับ สงสัยถามมาใน comment ได้ครับ
ตัวโปรแกรม R Commander จริงๆ แล้วสนับสนุนการนำเข้าไฟล์ข้อมูลจากหลายแหล่งครับ ไม่ว่าจะเป็นไฟล์ของ SPSS, Stata, SAS ก็สามารถเอาข้อมูลที่มีอยู่แล้วมาเปิดได้ครับ แต่วันนี้ผมจะขอเสนอวิธีการนำเข้าจาก Excel เนื่องจากคิดว่าน่าจะเป็นแหล่งเก็บข้อมูลโปรเจคเล็กๆ ของใครๆ หลายๆ คนนะครับ ก่อนอื่นเลยก็อยากจะให้ย้อนไปเตรียมข้อมูลใน Excel ให้เหมาะสมกับการนำเข้ามาในโปรแกรมวิเคราะห์ทางสถิติ ซึ่งสามารถหาอ่านได้จากบล็อกตอนเก่านะครับ (http://www.clinicalepi.com/2015/05/blog-post.html)
วิธีการเอาข้อมูลที่อยู่ในไฟล์ .XLSX เข้าโปรแกรม R Commander ไม่ยากเลยครับ สมมติว่าผมมีข้อมูลใน Excel แบบนี้นะครับ
จะสังเกตว่าข้อมูลของผม อยู่ในไฟล์ Excel ที่ชื่อว่า brugada.xlsx และอยู่ใน Sheet1 นะครับ แถวแรก เป็นชื่อตัวแปรทั้งหมด และข้อมูลมีถึงคอลัมน์ P แถวที่ 2510 (ไม่ได้โชว์ในรูปข้างบนให้ครบครับเนื่องจากมันยาวมาก)
วิธีการเอาข้อมูลนี้ไปลง R Commander มีดังนี้นะครับ
1. เปิด R Commander2. เลือกเมนู Data -> Import data -> from Excel File
3. จะปรากฎหน้าต่าง Import Excel Data Set ให้ตั้งค่าก่อนครับ
โดยเราตั้งค่าดังนี้นะครับ
- ช่อง Enter name of data set:เราสามารถพิมพ์ชื่อเรียกของข้อมูลที่กำลังจะเอาเข้านี้ได้ครับ เนื่องจากโปรแกรม R สนับสนุนการใช้ข้อมูลมากกว่า 1 ชุดข้อมูลในเวลาเดียวกัน ไม่เหมือนโปรแกรมอื่นที่ให้เปิดแค่ไฟล์เดียวต่อครั้ง ดังนั้นเราสามารถตั้งชื่อเรียกเพื่อไม่ให้สับสนได้ครับ หรือจะทิ้งไว้ชื่อ “Dataset” แบบที่เขียนไว้อยู่แล้วก็ได้ครับ
- Variable names in first row:ถ้าตามแบบข้อมูลที่เรามี แถวแรกเป็นชื่อตัวแปรก็ให้ติ๊กช่องนี้ด้วย
- Row name in first column: ถ้าตั้งใจจะให้มีชื่อแถวด้วยก็สามารถติ๊กได้ แต่ผมไม่ติ๊กเพราะมีแต่ข้อมูลครับ
- Convert character data to factor:ช่องนี้ถ้าเกิดว่าใครพิมพ์มาเป็น Male แทนที่จะเป็นเลข 0 1 ก็สามารถให้มันแปลงตรงนี้ได้ครับ
- Missing data indicator:ให้ทิ้งไว้เป็น Empty cell คือหมายความว่าใน Excel ถ้าช่องไหนไม่มีข้อมูลจะถือเป็นไม่มีข้อมูลใน R ด้วยครับ
5. ถ้าไฟล์เรามีหลาย Sheet โปรแกรมอาจจะขึ้นมาให้เลือก Sheet ที่เราต้องการด้วยครับ แต่ถ้ามี Sheet เดียวมันก็จะ Import มาให้เลย โดยสามารถดูสถานะได้ที่ด้านล่างของ R Commander ครับ
6. ทีนี้ถ้าเราต้องการจะดูว่าข้อมูลเป็นอย่างไร มีทางเลือกสองอย่างคือปุ่มด้านบนครับ
ปุ่ม Dataset ที่เป็นตัวสีน้ำเงินคือเราสามารถเลือกไฟล์ที่กำลังวิเคราะห์ได้ (ถ้าเปิดหลายไฟล์) ปุ่มถัดมาคือ Edit data set ถ้าคลิกก็จะขึ้นหน้าต่าง Data Editor ในตัวโปรแกรม R ให้แก้ไขได้ครับ (แก้ได้ด้วยการดับเบิ้ลคลิ้ก) แบบนี้
ทั้งนี้ผมไม่แนะนำให้แก้ข้อมูลแบบนี้ครับเพราะหมายความว่าถ้าแก้ตรงนี้เราจะไม่ได้ไปแก้ในฐานข้อมูล Excel ด้วย จะทำให้งงถ้าเราปิด R ไปแล้ว import ข้อมูลมาใหม่นะครับ เราควรจะแก้ที่ฐานข้อมูลใน Excel เลย แล้วค่อย import มาใหม่ ยกเว้นกรณีจำเป็นมากๆ จริงๆ ครับ แก้เสร็จแล้วก็กดปุ่มปิดด้านบนขวาได้ครับ
แต่ถ้าเรากดปุ่ม View data set จะขึ้นหน้าต่างแบบนี้แทนครับ ไม่สามารถแก้ไขข้อมูลได้ครับ
ทั้งนี้ ตอนนี้ข้อมูลก็เข้ามาอยู่ในโปรแกรม R Commander ให้ใช้แล้วครับ เช่นเราอยากทดลองหา Descriptive Statistics อย่างค่าเฉลี่ย ของอายุ (ตัวแปร age) ก็ให้ใช้คำสั่ง Statistics -> Summaries -> Numerical summaries
จะปรากฎหน้าต่างให้เลือกตัวแปรครับ ก็เลือก age
ถ้าอยากจะเจาะจงด้วยว่าจะให้คำนวณอะไรให้บ้าง ก็เลือกแท็บ Statistics ด้านขวา ก็จะมีให้เลือกย่อยครับ แต่โปรแกรมจะเลือกค่าที่เราใช้บ่อยๆ ให้อัตโนมัติอยู่แล้ว นั่นก็คือค่า Mean, SD, IQR, Quantile ที่ 0 .25 .5 .75 1 (ถ้ายังจำกัดได้ Quantile 0.5 ก็คือ Median นั่นเอง และ 0 = min, 1 ก็ max)
เมื่อเรากด OK ตัวโปรแกรมจะแสดงผลออกมาในช่อง Output เป็นตัวสีน้ำเงินหลังจากคำสั่งคล้ายแบบนี้นะครับ
ก็คือ ในตัวแปร age นี้มีข้อมูลอยู่ทั้งหมด 2509 คน (ด้านขวาสุด) มีค่า mean อยู่ที่ 31.56556 ค่า sd = 4.968339, IQR 9, Median 32, Minimum 23, Maximum 41 นั่นเองครับ
อยากจะให้สังเกตกันดีๆ ก่อนจะเอาค่าที่ได้ไปกรอกหรือทำตารางสรุปนะครับว่า
- จำนวน n ครบหรือเปล่าบางทีข้อมูลขาดหายครับ ต้องตามไปเช็คในไฟล์ Excel ด้วยว่าข้อมูลหายไปไหน อันนี้เจอบ่อยครับ
- Minimum, Maximum ถูกต้องไหมเช่นงานวิจัยเราทำในคนไข้ 18-60 ปี ถ้าได้แบบนี้มาก็คือน่าจะโอเค เพราะต่ำสุดคืออายุ 23 ปี และมากสุดคืออายุ 41 ปีนั่นเองครับ อันนี้เจอคนพิมพ์ผิดก็บ่อยอีกเช่นกันครับ
- ข้อมูลอยู่ในการกระจายแบบไหน ถ้าข้อมูลเป็น normal distribution ก็สามารถใช้ Mean, SD ได้ แต่ถ้าข้อมูลไม่ได้เป็น Normal Distribution ควรใช้ Median, Range มากกว่า สำหรับวิธีการเช็ค Distribution ขอยกยอดไปเขียนครั้งต่อไปน่ะครับ
เป็นอย่างไรบ้างครับ พอจะทำกันได้บ้างไหมครับ ยังไงลองเล่นกับข้อมูลดูนะครับ สงสัยถามมาใน comment ได้ครับ