การใช้ R ทำงานร่วมกับ Excel

(Pete)BlockedUnblockFollowFollowingDec 22ภาพปกยืมมาจาก DataCamp สามารถไปเรียนคอร์สเขาได้ด้วยนะฮะ ดีงามมมในโลกของธุรกิจนั้นเราใช้ Microsoft Excel ทำงานกับข้อมูลกันมานาน หลายบริษัทก็แทบจะใช้เป็นโปรแกรมหลักในการทำรายงาน จัดทำบทสรุปข้อมูลส่งผู้บริหาร เรียกว่ามีการใช้งานไปทุกแผนกทีเดียว การทำงานด้วย Excel เป็นเวลานานเช่นนั้นจะมาเปลี่ยนนัวิเคราะห์ข้อมูลที่เคยเคยชินกับการใช้ Excel หันมาใช้ R หรือ Python ในการทำงานกับข้อมูลนั้นดูยากไปสักหน่อย แต่นักวิเคราะห์ข้อมูลที่ใช้ R หรือ Python ทำงานกับ Excel นั้นดูจะเป็นหนทางที่ง่ายกว่าการไปบีบบังคับขืนใจให้เขามานั่งเรียนเขียนโปรแกรม (555)R มีไลบราลี่ในการทำงานกับ Excel อยู่หลายตัว แต่ตัวที่จะมาแนะนำวันนี้คือไลบราลี่ที่ชื่อว่า xlsx แต่ก่อนที่จะโหลดมาใช้งานได้เราต้องมี Java ลงอยู่ในเครื่องของเราเสียก่อน ลงแค่ Java Virtual Machine (JVM) ธรรมไม่ได้ด้วยนะฮะ ต้องลง Java Development Kit (JDK) เลย ไม่เช่นนั้นตอนเราติตตั้งไลบราลี่ตัวนี้จะมี error ขึ้นมาเพราะมันมีการใช้งานคำสั่งหรือไลบราลี่ของ Java อยู่อันดับแรกคือไปดาวน์โหลด JDK ได้ที่ลิงก์ด้านล่างนี้มาติดตั้งในเครื่องก่อน อ่อ ลืมบอกว่าการติดตั้งและทำงานในบทความนี้จะทำบน MacOSนะครับ Linkเมื่อเราจัดการติดตั้งเรียบร้อยแล้ว ขั้นตอนต่อมาคือต้องรันคำสั่งด้านล่างนี้ใน Terminal เพื่อให้ R สามารถทำงานกับ Java ได้ (รัน ๆ ไป เถอะ มัน reconfig java เพื่อความชัวร์ ไม่เสียหายอะไรครับ)R CMD javareconf (หรือ R CMD javareconf -e ถ้ารันแล้วไม่ผ่าน ถ้าไม่ผ่านอีกก็ sudo R CMD javareconf -ใส่พาสเวิร์ดเครื่องเราโลด)หาก Terminal ถามว่าจะเขียนทับการตั้งค่าเดิมไหม ( overide rw-r–r–) ก็ตอบ y ไปเลยครับ reconfigure สำเร็จ จะขึ้นข้อความประมาณนี้ครับข้อความเมื่อจัดการ reconfigure ตัว java สำเร็จถัดมาคือการติดตั้งไลบราลรี่ xlsx ลงมา ใช้คำสั่ง install.packages('xlsx')บน R (ใน RStudio) อาจจะใช้เวลาสักนิดหน่อย ถ้าติดตั้งสำเร็จจะไม่ขึ้นข้อความ error พวก none-zero exit ครับการเรียกทำงานกับไลบราลี่นี้ก็ไม่ยากครับ คำสั่งในการอ่านไฟล์ Excel เข้ามาสามารถใช้คำสั่ง read.xlsx() ได้เลยครับ เช่นdf <- read.xlsx('Documents/excel.xlsx')ส่วนพารามิเตอร์แต่ละตัวที่จำเป็นและคิดว่าใช่บ่อยก็จะมีดังนี้ครับsheetIndex กรณีไฟล์มีหลายชีตเราต้องเลือกอ่านไฟล์ที่ละหน้าเข้ามาครับ สามารถระบุหน้าที่จะอ่านข้อมูลมาได้ เช่น sheetIndex = 1colIndex rowIndexเมื่ออ่านไฟล์มาแล้วบาครังจะบางคอลัมภ์หรือแถวที่เราไม่ต้องการ เราก็สามารถเลือกเอาเฉพาะส่วนของตารางข้อมูลที่เราต้องการได้ด้วยพารามิเตอร์ colIndex และ rowIndexpassword บางครั้งไฟล์ Excel มีการตั้งรหัสผ่านไว้ เราก็สามารถระบุรหัสเพื่อใช้ในการเปิดอ่านไฟล์ลงมาได้ครับ เช่น password = 'exelPass'ตัวอย่างคำสั่งที่มีพารามิเตอร์ด้วยเช่นdf <- read.xlsx('Documents/exel.xlsx', sheetIndex = 1, colIndex = 1:10, rowIndex = 5:100, password = 'passw0rd')นอกเหนือจากการอ่านทีไฟล์เข้ามาทำงานต่อแล้ว เรายังสามารถเขียนคำสั่งทวนซ้ำ (Loop) ให้อ่านไฟล์หลาย ๆ ไฟล์มาต่อกันเป็ตารางขนาดใหหญ่ได้เหมือนกันครับ ก็หวังว่าบทความนี้จะมีประโยชน์กับหลาย ๆ คนที่ทำงานกับไฟล์ Excel ปริมาณมาก ๆ ให้สามารถทำงานร่วมกับ R ได้อย่างง่ายดายSession InfoR version 3.5.1 (2018–07–02)Platform: x86_64-apple-darwin18.0.0 (64-bit)Running under: macOS 10.14.2Matrix products: defaultBLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylibLAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dyliblocale:[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8attached base packages:[1] stats graphics grDevices utils datasets methods baseother attached packages:[1] data.table_1.11.8 xlsx_0.6.1loaded via a namespace (and not attached):[1] compiler_3.5.1 tools_3.5.1 xlsxjars_0.6.1 rJava_0.9–10. More details

Leave a Reply