Screenshot 2016-08-31 10.08.11

KM Meeting: R ไรหว่า? — รู้จักกับ R

Print Friendly

พรุ่งนี้ผมจะจัด KM workshop เล็กๆ เพื่อแนะนำให้ท่านรู้จักกับ R เครื่องมือสุดฮอตของชาว Data Science ซึ่งจัดขึ้นสำหรับผู้ที่ไม่เคยมีพื้นฐาน R หรือการเขียนโปรแกรมใดๆ มาก่อนเลย โดยมีรายละเอียดดังนี้ครับ

เวลา: วันพุธที่ 31 สิงหาคม 2559 เวลา 13:00 น.
สถานที่: ห้องประชุม ชั้น 11 สถาบันการเรียนรู้ มจธ.
ระยะเวลา: อาจจะ 1-2 ชั่วโมง แล้วแต่ความปรารถนาของผู้เข้าร่วมประชุม

ถ้าใครมาไม่ได้แต่สนใจ อยากให้จัดรอบสอง โปรดบอกผมด้วยครับ บอกทาง comment หรือด้วยวาจาก็ได้

ขอบคุณครับ 🙂
– mock

เป้าหมาย:

  1. ท่านจะได้ติดตั้ง R, RStudio และเขียนโปรแกรมแรกใน R
  2. ท่านจะรู้วิธีทำอะไรหลายๆ อย่างใน R ที่ท่านเคยทำด้วย Excel เช่น
    1. หาค่าเฉลี่ย มัธยฐาน
    2. หา correlation
    3. สร้าง histogram
    4. สร้าง scatterplot
    5. ปรับแต่งรูปแบบของกราฟ (สี, ตัวอักษร ฯลฯ)
    6. วาดเส้นเพิ่มลงบนกราฟเพื่อบอกตำแหน่งข้อมูลอย่างแม่นยำ
  3. ท่านจะได้เห็นว่า R ทำอะไรได้อีกบ้าง (น้ำจิ้ม)
  4. ท่านจะได้ร่วมแสดงความคิดเห็นว่าต้องการเรียนรู้อะไรเพิ่มเติมในครั้งต่อไป

อุปกรณ์ที่ต้องเตรียม: computer 1 เครื่อง เป็นระบบ Windows หรือ Mac ก็ได้ (Linux ก็อาจจะได้)

การเตรียมตัวเบื้องต้น: 

ไม่ต้องเตรียม แต่ถ้าอยากจะเตรียมก็โปรดทำดังนี้ครับ

  1. Download R (หัวใจของ R) ได้ที่ https://cran.r-project.org
    Screenshot 2016-08-30 14.24.29
    คลิกเลือก platform ที่ต้องการ (Mac หรือ Windows)
    จากนั้นก็ติดตั้งให้เรียบร้อย
  2. Download RStudio (เปลือกนอกของ R ซึ่งจะทำให้ชีวิตง่ายขึ้น)
    จาก https://www.rstudio.com/products/rstudio/download3/
    หรือคลิกที่นี่เลย [Windows] [Mac]
    แล้วติดตั้งให้เรียบร้อย
  3. เปิด RStudio แล้วลองพิมพ์คำสั่ง
    3+4

    แล้วกด Enter จะพบกับคำตอบดังนี้
    Screenshot 2016-08-30 14.36.49
    เป็นอันว่าใช้งานได้สำเร็จ ยินดีด้วยครับ


บันทึกเนื้อหา


exercise files

  1. Download: survey จากวิชา GEN121
  2. Download: ค่าเช่าบ้าน ค่าน้ำ ค่าไฟ: rents
  3. Download: บันทึกน้ำหนัก: weights

Training Resources

  1. https://cran.r-project.org/doc/manuals/r-release/R-intro.html
  2. https://cran.r-project.org/doc/manuals/r-release/R-intro.html#A-sample-session

References

  1. การปรับแต่งหน้าตาของ plot
    http://www.statmethods.net/advgraphs/parameters.html
    points-1
  2. ตารางสี
    http://research.stowers-institute.org/efg/R/Color/Chart/index.htm
    ColorsChart3

สารพันปัญหา

  1. บน 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
  2. ปัญหาเวลาโหลดไลบรารี่: library(xlsx) ถ้ามี error หน้าตาแบบนี้ 
    JavaVM: requested Java version ((null)) not available. Using Java at “” instead.
    ให้ทำดังนี้

    1. ปิด RStudio
    2. บน Terminal พิมพ์
      sudo R CMD javareconf
    3. เปิด RStudio แล้วพิมพ์

      install.packages("rJava",type='source')
  3. ข้อมูลบางคอลัมน์เป็นตัวอักษร จะเปลี่ยนเป็นตัวเลขอย่างไร?
    data$x = as.numeric(data$x)
  4. ข้อมูลบางตัวมันผิดพลาด เช่นพิมพ์ 55 แทนที่จะเป็น 5 จะแก้ไขอย่างไร?
    data$x[data$x == 55] = 5
  5. ข้อมูลบางแถวเป็นข้อมูล outlier หรือข้อมูลที่พิมพ์ผิด จะกำจัดแถวนั้นออกไปอย่างไร? เช่น บันทึกมวลในช่องที่มวลไม่ควรต่ำกว่า 50
    data2 = data[data$mass > 50, ]

    สังเกตว่าหลัง comma เป็นที่ว่างๆ ไม่มีอะไรเลย ซึ่งเป็นไวยากรณ์ที่ประหลาดมาก แต่ความหมายของมันคือ เลือกมาทุกคอลัมน์เลยจ้า

  6. ???

เข้าห้องสมุดกันเถอะ

อย่าลืมนะ ห้ามใส่กางเกงขาสั้น (ทุกอย่างดูซอฟท์เมื่อเป็นพาสเทล)

สามารถลง library พวกนี้ได้โดยคลิกที่ Packages (ขวาล่าง) และกด Install 
Screenshot 2016-08-31 09.56.30

จะมี dialog โผล่ขึ้นมา แล้วเราก็พิมพ์ชื่อ package ลงไปที่ช่องว่างนั้นได้เลย
Screenshot 2016-08-31 09.58.34
จากนั้นกด Install เป็นอันเสร็จพิธี

สิ่งที่ควรติดตั้ง ได้แก่:

  1. openxlsx
    เอาไว้อ่านไฟล์ Excel (คำสั่ง read.xlsx)
  2. psych
    เอาไว้คำนวณค่าทางสถิติพื้นฐาน (เช่นคำสั่ง describe)
  3. scales
    เอาไว้จัดการเรื่องสี เช่นการทำสีโปร่งแสง (alpha)

ไฟล์ code ตัวอย่าง

นี่คือตัวอย่าง source code ภาษา R ที่ใช้ในการสาธิตวันนี้ครับ

  1. fun1.R สำหรับวิเคราะห์ข้อมูล weights
    • ตัวอย่างการกำจัดข้อมูลแถวที่ไม่ต้องการ
    • ตัวอย่างการวาดกราฟแบบระบุชนิดจุด สี เส้น การวาดเส้นเสริม วาดชุดข้อมูลที่สอง การระบุ range บนแกน Y การตั้งค่า labels, title
      Screenshot 2016-08-31 16.54.12
  2. fun2.R สำหรับวิเคราะห์ข้อมูล GEN 121
    • ตัวอย่างการแก้ไขข้อมูลที่ผิดพลาดให้ถูกต้อง
    • ตัวอย่างการทำ histogram แบบระบุจำนวน bins
    • ตัวอย่างการวาดหลายๆ กราฟเป็นแผงใหญ่
    • ตัวอย่างการวาดกราฟโดยใช้จุดโปร่งแสง (transparent) ทับกันเพื่อให้เห็นความหนาแน่น
      Screenshot 2016-08-31 11.42.57 Screenshot 2016-08-31 12.39.24

และนี่คือตัวอย่างเพิ่มเติม เป็นตัวอย่างที่เคยใช้จริง สามารถคัดลอกไปใช้ได้เลยโดยไม่ต้องขออนุญาตครับ:

  1. source code จาก ICLIST paper เรื่อง Peer Evaluation: sec3.1.Rsec3.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 คน คือ

  1. ม็อค
  2. ว้า
  3. พี่เค
  4. พี่เอก
  5. พี่อ้อมหญิง
  6. เซี้ยม
  7. อ้อมชาย (มานั่ง update Windows … )

Lessons Learned

  1. ควรเตรียมไฟล์ที่ต้องการให้ดาวน์โหลดใส่ USB drive ไว้ล่วงหน้า จะได้ไม่ต้องพึ่งพา wifi
  2. ควรมีอาหาร 🙂