SakNgoi

Category: R

จาก Shiny สุดท้ายกลับมา CDF

บ่น ๆๆ ตัว Shiny เวลาที่วาดกราฟด้วย ggplot2 มันค่อนข้างช้าพอสมควร ยิ่งถ้ามี function ที่ต้องคำนวณให้ได้ข้อมูลก่อนมาวาดกราฟนี่ยิ่งหนักเลย สุดท้ายก็ต้องกลับมาที่ CDF ของ Mathematica เฮ้ออออ … ตัวอย่างข้างล่างนี้ทุกครั้งที่เปลี่ยน index จะมีการคำนวณผลลัพธ์แบบ real time เลยไม่ใช่การเอาผลลัพธ์ที่ได้มาวาดเฉยๆนะครับ แล้วลองสังเกตุความเร็ว  ถ้าเทียบกับ R/Shiny นี่คนล่ะเรื่องเลย   ส่วนอันนี้อีกตัวอย่างที่เอามาไว้โชว์ดูข้อมูลเฉยๆ  ถ้าเห็น code ที่เขียนแล้วจะตกใจเพราะไม่กี่บรรทัดเอง เสียดายที่ภาษา Wolfram หรือ Mathematica นี่ไม่ค่อยเป็นกระแสสักเท่าไหร่ในบ้านเรา ถึงแม้จะสามารถใช้ได้ฟรีใน Raspberry Pi ส่วนตัวคิดว่าน่าจะเอามาใช้สอนเด็กของไทยเรามาก

สีหน้าใน R

ทดสอบ FaceExp  แพ็คเกจ สำหรับหาสีหน้าของคนในรูป  เปิดทดสอบชั่วคราว1 เม.ย ลบครับ(อาจลบก่อนหน้านั้น)  สนใจทดสอบ โหลดได้ที่ https://1drv.ms/u/s!AjSk65t7m_UYiJ1TFDzPtw6hdZJj_g วิธีการติดตั้งก็โหลด ไฟล์ zip ในLink แล้วพิมพ์ install.packages(file.choose(), repos = NULL, type=”source”) แล้วเลือกไฟล์ที่โหลดมาครับ คำสั่งหลักคือ faceExp(pic.url)  โดยที่ pic.url คือ url ของภาพครับ นั่นหมายความว่าถ้าอยากทดสอบแพ็คเกจนี้ต้องนำรูปโหลดไปไว้ที่ใดก่อน จากนั้นก็นำ url มาใส่ในคำสั่งนี้ได้เลยครับ โดยสีหน้าที่มีคือ happiness, disgust, sadness, neutral, anger, fear, surprise

ตัวอย่างการใช้ Shiny กับ Maemod

มีคนถามมาว่าช่วยทำตัวอย่างการใช้ Shiny กับแพ็คเกจ maemod ให้ดูหน่อย ผมทำเป็นตัวอย่างง่ายๆให้ดูแล้วครับที่ https://github.com/slphyx/maemod/tree/master/inst/examples/shiny อยากทดลองเล่นก็ลง maemod ก่อนหลังจากนั้นก็โหลดตัวอย่างไฟล์ที่ให้ไว้ใน link ทั้งสามไฟล์ โดยเก็บไว้ที่เดียวกัน จากนั้นก็เปิดไฟล์ ui.R หรือ server.R ใน rstudio แล้วก็ click ที่ปุ่ม Run App ได้เลยครับ    

ปัญหา ‘\r\n’ สำหรับ R บนวินโดว์

พอดีว่าเขียนโปรแกรม(ภาษา R)เพื่ออ่านค่า input ที่เป็น string จากไฟล์ แต่เจอปัญหาที่ eval  ของ R ไม่สามรถ run ได้ นั่นก็คือตัว ‘\r\n\r\n’ ซึ่งมันก็คือการขึ้นบันทัดใหม่จาก text file ที่สร้างบนวินโดว์ (Windows CR LF) ทำให้ต้องกลับไปสร้างแบบ Unix (LF) แทน หรือไม่ก็ต้องลบ \r ออก มีการคุยเรื่องนี้ที่ https://stackoverflow.com/questions/1761051/difference-between-n-and-r      

เอาสักดอกไหม

จาก http://www.sakngoi.com/2015/10/30/สมการดอกกุหลาบ/ library(misc3d) rose <- function(x,theta,axis) { phi <- (pi/2)*exp(-theta/(8*pi)) X <- 1-(1/2)*((5/4)*(1- ((3.6 * theta) %% (2*pi))/pi)^2-1/4)^2 y <- 1.95653* x*x * (1.27689 *x-1)^2 * sin(phi) r <- X*(x *sin(phi)+y*cos(phi)) out<-switch(axis, x={ r*sin(theta) }, y={ r*cos(theta) }, z={ (X*(x* cos(phi)-y* sin(phi))) } ) return(out) } parametric3d( fx = function(u,v) rose(u,v,axis=”x”), fy = function(u,v) rose(u,v,axis=”y”), fz […]

หา drive ของ USB drive

ทีมที่ต้องไปนำเสนองานเพื่อขอเงินล้านทีมหนึ่งต้องการใช้ Shiny ขอมาว่าให้ช่วยหน่อย โดยที่มีความต้องการว่าไม่ต้องการให้มีเซ็ตหรือเปิดอะไรยุ่งยากเพียงแค่ เสียบ USB drive ในเครื่องลูกค้าซึ่งเป็น Windows แล้ว double click อะไรก็แล้ว ให้ตัว Shiny app ก็เปิดขึ้นมาเลย ผมเลยบอกว่าได้ง่ายมาก เลี้ยงก๋วยเตี๋ยวผมก่อนชามหนึ่งเดี๋ยวเขียนscript ง่ายๆให้ เวลาใช้ก็เพียง double click ที่ icon ของ batch file นี้ วิธีที่ผมทำนั้นมันง่ายจริงๆครับ เพียงเขียน batch file หาว่า drive ที่เข้าเสียบนั้นอยู่ drive อะไรก่อน จากนั้นก็เพียง set ค่าพารามิเตอร์ที่ rstudio ต้องการใช้ในการหา R  และก็แก้ script นิดหน่อยให้ R มันโหลดตัว app เลย อันนี้เป็นตัวอย่างโค้ด batch file ที่ใช้หา […]

แบ่งคำ/ตัดคำ ภาษาไทยใน R ด้วย SWATH

โปรแกรมที่ช่วยในการแบ่งคำหรือตัดคำภาษาไทยที่น่าสนใจอีกตัวหนึ่งนอกเหนือจาก LexTo (http://www.sansarn.com/lexto/) ก็มี SWATH (https://linux.thai.net/projects/swath) ครับ SWATH มีความสามารถที่จะใช้ตัดคำภาษาไทยที่อยู่ในหลาย file format ครับไม่ว่าจะเป็น LaTex, HTML, RTF หรือ plain text  แต่การใช้งานต้องใช้ในแบบ command line ไม่มี GUI ครับ โดย swath จะมี options ต่างให้ เพื่อความสะดวกเอาไปใช้ใน R บน Windows ผมเลยเขียน packageเพื่อเรียกใช้งาน SWATH แบบง่ายๆไว้ที่ https://github.com/slphyx/RSwath หรือดูเพิ่มเติมที่ http://www.sakngoi.com/2018/01/23/rswath-the-r-interface-to-swath/ การใช้งานก็เริ่งจากติดตั้งจาก github ด้วยคำสั่ง library(“devtools”) install_github(“slphyx/RSwath”) จากนั้นก็เรียกใช้งาน library(“RSwath”) การใช้งานกับไฟล์ข้อความที่เป็นภาษาไทยที่ต้องการแบ่งสมมุติว่าชื่อ testTH.txt แล้วต้องการให้ไฟล์ที่แบ่งคำแล้วด้วย SWATH ชื่อ testTHX.txt ก็เพียงพิมพ์ rswath(inputfile=”testTH.txt”,outputfile=”testTHX.txt”) […]

RSwath: The R Interface to SWATH

RSwath: The R Interface to Swath ผมเอา SWATH (https://code.google.com/archive/p/swath/) มาทำเป็น r-package สำหรับใช้ใน R บน Windows ครับ ตอนนี้มันยังเป็นรุ่นเก่าอยู่ (swath 0.3.4) ครับ SWATH ก็เป็นตัวแบ่งคำภาษาไทยอีกตัวหนึ่งที่พัฒนาโดยท่าน Phaisarn Charoenpornsawat และท่าน Theppitak Karoonboonyanan ครับ สนใจใช้งานก็ไปที่ https://github.com/slphyx/RSwath การใช้งานก็เริ่มจากติดตั้งจาก github ด้วยคำสั่ง library(“devtools”) install_github(“slphyx/RSwath”) จากนั้นก็เรียกใช้งาน library(“RSwath”) การใช้งานกับไฟล์ข้อความที่เป็นภาษาไทยที่ต้องการแบ่งสมมุติว่าชื่อ testTH.txt แล้วต้องการให้ไฟล์ที่แบ่งคำแล้วด้วย SWATH ชื่อ testTHX.txt ก็เพียงพิมพ์ rswath(inputfile=”testTH.txt”,outputfile=”testTHX.txt”) ตัวอย่างไฟล์ที่ใช้กับswathกับผลลัพธ์ที่ได้        

tidy data

ถ้าจะทำให้ชีวิตง่ายขึ้นในการใช้ ggplot2 ให้เปลี่ยนรูปแบบ data ที่ใช้เป็นแบบ tidy data ครับ เอามาจาก http://r4ds.had.co.nz/tidy-data.html หรืออ่านเพิ่มเติมได้จาก http://vita.had.co.nz/papers/tidy-data.html  

ดูการกระจายข่าวใน FB

นักการตลาดท่านหนึ่งอยากรู้ว่าข่าวประชาสัมพันธ์ที่ท่านช่วยอยู่มีการแชร์อย่างไรใน FB ผมเลยช่วยทำให้ดูแบบง่ายๆแต่ท่านต้องหาคนมาช่วยเก็บข้อมูลให้ ในตัวอย่างนี้ network ของกลุ่มเป้าหมายบน FB ถูกสร้างขึ้นมาจากนั้นก็ลองโพสท์ข่าวลงไป แล้วนับดูว่าแต่ล่ะชั่วโมงมีการแชร์หรือเห็นหรือLike รวมกันจำนวนเท่าใด     ซึ่งวิธีนี้เราสามารถทำโมเดลเพื่อตอบได้ว่าประเภทข่าวหรือรูปแบบนำเสนอแบบใดที่จะถูกแพร่กระจายได้มากกว่ากัน พร้อมกับรู้ด้วยว่าข่าวมันจะถึงจุดอิ่มตัวเมื่อใดซึ่งมันจะช่วยให้เราว่างแผนการโฆษณาได้ง่ายขึ้นครับ    

Back to top
%d bloggers like this: