พรุ่งนี้ผมจะจัด KM workshop เล็กๆ เพื่อแนะนำให้ท่านรู้จักกับ R เครื่องมือสุดฮอตของชาว Data Science ซึ่งจัดขึ้นสำหรับผู้ที่ไม่เคยมีพื้นฐาน R หรือการเขียนโปรแกรมใดๆ มาก่อนเลย โดยมีรายละเอียดดังนี้ครับ
เวลา: วันพุธที่ 31 สิงหาคม 2559 เวลา 13:00 น.
สถานที่: ห้องประชุม ชั้น 11 สถาบันการเรียนรู้ มจธ.
ระยะเวลา: อาจจะ 1-2 ชั่วโมง แล้วแต่ความปรารถนาของผู้เข้าร่วมประชุม
ถ้าใครมาไม่ได้แต่สนใจ อยากให้จัดรอบสอง โปรดบอกผมด้วยครับ บอกทาง comment หรือด้วยวาจาก็ได้
ขอบคุณครับ 🙂
– mock
เป้าหมาย:
- ท่านจะได้ติดตั้ง R, RStudio และเขียนโปรแกรมแรกใน R
- ท่านจะรู้วิธีทำอะไรหลายๆ อย่างใน R ที่ท่านเคยทำด้วย Excel เช่น
- หาค่าเฉลี่ย มัธยฐาน
- หา correlation
- สร้าง histogram
- สร้าง scatterplot
- ปรับแต่งรูปแบบของกราฟ (สี, ตัวอักษร ฯลฯ)
- วาดเส้นเพิ่มลงบนกราฟเพื่อบอกตำแหน่งข้อมูลอย่างแม่นยำ
- ท่านจะได้เห็นว่า R ทำอะไรได้อีกบ้าง (น้ำจิ้ม)
- ท่านจะได้ร่วมแสดงความคิดเห็นว่าต้องการเรียนรู้อะไรเพิ่มเติมในครั้งต่อไป
อุปกรณ์ที่ต้องเตรียม: computer 1 เครื่อง เป็นระบบ Windows หรือ Mac ก็ได้ (Linux ก็อาจจะได้)
การเตรียมตัวเบื้องต้น:
ไม่ต้องเตรียม แต่ถ้าอยากจะเตรียมก็โปรดทำดังนี้ครับ
- Download R (หัวใจของ R) ได้ที่ https://cran.r-project.org
คลิกเลือก platform ที่ต้องการ (Mac หรือ Windows)
จากนั้นก็ติดตั้งให้เรียบร้อย - Download RStudio (เปลือกนอกของ R ซึ่งจะทำให้ชีวิตง่ายขึ้น)
จาก https://www.rstudio.com/products/rstudio/download3/
หรือคลิกที่นี่เลย [Windows] [Mac]
แล้วติดตั้งให้เรียบร้อย - เปิด RStudio แล้วลองพิมพ์คำสั่ง
3+4
แล้วกด Enter จะพบกับคำตอบดังนี้
เป็นอันว่าใช้งานได้สำเร็จ ยินดีด้วยครับ
บันทึกเนื้อหา
exercise files
- Download: survey จากวิชา GEN121
- Download: ค่าเช่าบ้าน ค่าน้ำ ค่าไฟ: rents
- Download: บันทึกน้ำหนัก: weights
Training Resources
- https://cran.r-project.org/doc/manuals/r-release/R-intro.html
- https://cran.r-project.org/doc/manuals/r-release/R-intro.html#A-sample-session
References
- การปรับแต่งหน้าตาของ plot
http://www.statmethods.net/advgraphs/parameters.html
- ตารางสี
http://research.stowers-institute.org/efg/R/Color/Chart/index.htm
สารพันปัญหา
- บน Mac ถ้ามีปัญหาเรื่อง locale และติดตั้ง package ไม่ได้ โดยมี error message ว่า: tar: Failed to set default locale ให้ออกจาก RStudio แล้วพิมพ์คำสั่งนี้ใน Terminal:
defaults write org.R-project.R force.LANG en_US.UTF-8
ปัญหาเวลาโหลดไลบรารี่: library(xlsx) ถ้ามี error หน้าตาแบบนี้
JavaVM: requested Java version ((null)) not available. Using Java at “” instead.
ให้ทำดังนี้ปิด RStudioบน Terminal พิมพ์sudo R CMD javareconf-
เปิด RStudio แล้วพิมพ์install.packages("rJava",type='source')
- ข้อมูลบางคอลัมน์เป็นตัวอักษร จะเปลี่ยนเป็นตัวเลขอย่างไร?
data$x = as.numeric(data$x)
- ข้อมูลบางตัวมันผิดพลาด เช่นพิมพ์ 55 แทนที่จะเป็น 5 จะแก้ไขอย่างไร?
data$x[data$x == 55] = 5
- ข้อมูลบางแถวเป็นข้อมูล outlier หรือข้อมูลที่พิมพ์ผิด จะกำจัดแถวนั้นออกไปอย่างไร? เช่น บันทึกมวลในช่องที่มวลไม่ควรต่ำกว่า 50
data2 = data[data$mass > 50, ]
สังเกตว่าหลัง comma เป็นที่ว่างๆ ไม่มีอะไรเลย ซึ่งเป็นไวยากรณ์ที่ประหลาดมาก แต่ความหมายของมันคือ เลือกมาทุกคอลัมน์เลยจ้า
- ???
เข้าห้องสมุดกันเถอะ
อย่าลืมนะ ห้ามใส่กางเกงขาสั้น (ทุกอย่างดูซอฟท์เมื่อเป็นพาสเทล)
สามารถลง library พวกนี้ได้โดยคลิกที่ Packages (ขวาล่าง) และกด Install
จะมี dialog โผล่ขึ้นมา แล้วเราก็พิมพ์ชื่อ package ลงไปที่ช่องว่างนั้นได้เลย
จากนั้นกด Install เป็นอันเสร็จพิธี
สิ่งที่ควรติดตั้ง ได้แก่:
- openxlsx
เอาไว้อ่านไฟล์ Excel (คำสั่ง read.xlsx) - psych
เอาไว้คำนวณค่าทางสถิติพื้นฐาน (เช่นคำสั่ง describe) - scales
เอาไว้จัดการเรื่องสี เช่นการทำสีโปร่งแสง (alpha)
ไฟล์ code ตัวอย่าง
นี่คือตัวอย่าง source code ภาษา R ที่ใช้ในการสาธิตวันนี้ครับ
- fun1.R สำหรับวิเคราะห์ข้อมูล weights
- ตัวอย่างการกำจัดข้อมูลแถวที่ไม่ต้องการ
- ตัวอย่างการวาดกราฟแบบระบุชนิดจุด สี เส้น การวาดเส้นเสริม วาดชุดข้อมูลที่สอง การระบุ range บนแกน Y การตั้งค่า labels, title
- fun2.R สำหรับวิเคราะห์ข้อมูล GEN 121
- ตัวอย่างการแก้ไขข้อมูลที่ผิดพลาดให้ถูกต้อง
- ตัวอย่างการทำ histogram แบบระบุจำนวน bins
- ตัวอย่างการวาดหลายๆ กราฟเป็นแผงใหญ่
- ตัวอย่างการวาดกราฟโดยใช้จุดโปร่งแสง (transparent) ทับกันเพื่อให้เห็นความหนาแน่น
และนี่คือตัวอย่างเพิ่มเติม เป็นตัวอย่างที่เคยใช้จริง สามารถคัดลอกไปใช้ได้เลยโดยไม่ต้องขออนุญาตครับ:
- source code จาก ICLIST paper เรื่อง Peer Evaluation: sec3.1.R, sec3.2.R
- ถ้าใครต้องการทดลอง run จริงๆ มาติดต่อขอ original data จากผมได้ ซึ่งจะต้องใช้เวลาเพิ่มเติมอีกเล็กน้อยเพื่อที่จะ anonymize ข้อมูลนักศึกษา
- สามารถอ่าน paper และดูกราฟต่างๆ ที่เกิดจาก output ของโปรแกรมนี้ ได้ใน Sections 3.1 และ 3.2 ที่นี่
http://celt.li.kmutt.ac.th/mock/peerEva_ICLIST/
บันทึกยิบย่อย
- sample R code for UCSB Retivis at: ~/Dropbox/retina_project/r
- sample R code for CPE457 (ICLIST paper) at: ~/Documents/LI/cpe457/R
AAR
ผู้เข้าร่วมเสวนา KM ครั้งนี้ มี 7 คน คือ
- ม็อค
- ว้า
- พี่เค
- พี่เอก
- พี่อ้อมหญิง
- เซี้ยม
- อ้อมชาย (มานั่ง update Windows … )
Lessons Learned
- ควรเตรียมไฟล์ที่ต้องการให้ดาวน์โหลดใส่ USB drive ไว้ล่วงหน้า จะได้ไม่ต้องพึ่งพา wifi
- ควรมีอาหาร 🙂