SakNgoi

Tag: Shiny

Kung package แพ็คเกจกุ้ง

แพ็คเกจกุ้งเป็นแพ็คเกจภาษา R ที่ผมเขียนขึ้นมาสำหรับใช้สร้าง Shiny App สำหรับโค้ดของโมเดลที่สร้างจากสมการอนุพันธ์หรือ ODE ที่ใช้ตัว solver จากแพ็คเกจที่ชื่อ deSolve ครับ ไอเดียก็มีเพียงว่าจากสมการ ode ที่สร้างขึ้นมาด้วยถ้าตัวแปรในสมการมีการเปลี่ยนแปลงค่า ผลลัพท์ที่ออกมามันจะเปลี่ยนแปลงไปอย่างไร การเขียนใน R นั้เราก็อาจจะใช้คำสั่ง manipulate มาช่วยได้แต่มันก็ยังมีข้อจำกัดเรื่องจำนวนของตัวแปรที่สามารถเรียกมาใช้ได้ เพราะมันขึ้นอยู่กับขนาดหน้าจอของตัว plot ผมเลยคิดว่าถ้าใช้ shiny มันน่าจะดูดีกว่าและสามารถใส่ตัวแปรได้มากกว่า ขึ้นกับการออกแบบ ui แต่การเขียน shiny ก็ไม่ใช่ว่าจะง่ายสำหรับคนเริ่มเรียนรู้ R ผมเลยคิดว่าน่าจะเขียนแพ็คเกจที่สามารถช่วยเรื่องนี้ได้ แพ็คเกจที่เขียนก็พยายามทำให้มันใช้ง่ายมากที่สุดจาก code ที่มีอยู่แล้ว โดยผู้ใช้เพิ่มคำสั่งไม่มากก็สามารถที่จะสร้าง shiny application ได้แล้ว ตัวอย่างเช่น ถ้าผู้ใช้มี code อยู่แล้วตามนี้ ซึ่งมันจะคำนวณและ plot กราฟให้ตามค่าของตัวแปรพารามิเตอร์ที่กำหนดไว้ เช่น gamma = 0.14286 และ beta = 0.6 […]

Microsoft Edge เปิด localhost ไม่ได้

พอดีว่าต้องแก้งานที่ใช้ Shiny บางอย่างในเครื่องของที่ทำงานและทดลองใช้กับ MS Edge เพื่อเปิดงานจาก localhost:127.0.0.1 แล้วปรากฏว่ามันเปิดไม่ได้ บอกว่า “Hmmm…can’t reach this page”  แต่พอทดลองเปิดกับ Chrome แล้วใช้ได้ วิธีที่ผมแก้ปัญหาคือ เปิด command prompt (cmd) มาแล้วพิมพ์คำสั่งนี้ลงไปครับ CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe เพื่อให้ Edge มัน loopback กลับมาที่ localhost ครับ หรือไม่ก็พิมพ์ “about:flags”  ในช่อง url ของ MS Edge แล้ว tick ที่ ช่อง Allow localhost loopback ครับ    

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

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

ส่งผ่านค่าจาก url เข้ามาใน shiny app

ตัวอย่างรับค่าจาก url เข้ามาใช้ใน shiny app ครับ library(shiny) shinyApp( ui = fluidPage( textInput(“text”, “Text”,””), textInput(“text2”, “Text2″,””) ), server = function(input, output, session) { observe({ query <- parseQueryString(session$clientData$url_search) if (!is.null(query[[‘text’]])) { updateTextInput(session, “text”, value = query[[‘text’]]) } if (!is.null(query[[‘text2’]])) { updateTextInput(session, “text2”, value = query[[‘text2’]]) } }) } ) ลองดูเพิ่มเติมที่ https://shiny.rstudio.com/articles/client-data.html

Back to top
%d bloggers like this: