R Shiny Tutorial: วิธีสร้างแอปพลิเคชันเว็บแบบโต้ตอบในR

เผยแพร่แล้ว: 2020-03-16

สารบัญ

บทนำ

ในยุคเทคโนโลยีสมัยใหม่นี้ เราทุกคนมีแอพมากมาย ตั้งแต่การติดตามระดับความฟิต การนอนหลับ ไปจนถึงการให้ข้อมูลล่าสุดเกี่ยวกับตลาดหุ้นแก่เรา แอปอย่าง Robinhood, Google Fit และ Workit ดูเหมือนจะมีประโยชน์มากเพราะใช้ข้อมูลและสถิติแบบเรียลไทม์ เนื่องจาก R เป็นผู้นำในด้านการคำนวณและการเขียนโปรแกรมทางสถิติ นักพัฒนาจึงจำเป็นต้องมีระบบเพื่อใช้พลังในการสร้างแอป เรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรม R

นี่คือที่ที่ R Shiny มาเพื่อกอบกู้โลก ใน บทช่วยสอน R Shiny นี้ คุณจะได้เรียนรู้พื้นฐาน

R Shiny คืออะไร?

Shiny เป็นแพ็คเกจ R ที่พัฒนาขึ้นสำหรับสร้าง เว็บแอปพลิเคชัน เชิง โต้ตอบใน R เมื่อใช้สิ่งนี้ คุณสามารถสร้างเว็บแอปพลิเคชันโดยใช้โค้ด HTML และ CSS ดั้งเดิมพร้อมกับโค้ด R Shiny คุณสามารถสร้างเว็บแอปแบบสแตนด์อโลนบนเว็บไซต์ที่จะทำให้การแสดงข้อมูลเป็นเรื่องง่าย แอปพลิเคชันเหล่านี้ที่สร้างผ่าน R Shiny สามารถแสดงวัตถุ R เช่น ตารางและแผนผังได้อย่างราบรื่น

ให้เราดูคุณสมบัติบางอย่างของ R Shiny:

  • สร้างเว็บแอปพลิเคชันด้วยโค้ดที่น้อยลง โดยไม่ต้องใช้ JavaScript
  • แอปพลิเคชันเหล่านี้ใช้งานได้จริงและเข้าถึงได้สำหรับผู้ใช้ เช่น สเปรดชีต เอาต์พุตอาจเปลี่ยนแปลงตามเวลาจริงหากผู้ใช้เปลี่ยนอินพุต
  • นักพัฒนาที่มีความรู้เกี่ยวกับเครื่องมือเว็บเพียงเล็กน้อยก็สามารถสร้างแอพโดยใช้ R Shiny ได้เช่นกัน
  • คุณได้รับวิดเจ็ตในตัวเพื่อแสดงตาราง เอาต์พุตของอ็อบเจ็กต์ R และพล็อต
  • คุณสามารถเพิ่มการแสดงภาพสดและรายงานไปยังเว็บแอปพลิเคชันโดยใช้แพ็คเกจนี้
  • ส่วนต่อประสานกับผู้ใช้สามารถเขียนโค้ดใน R หรือเตรียมโดยใช้ HTML, CSS หรือ JavaScript
  • อินเทอร์เฟซผู้ใช้เริ่มต้นสร้างขึ้นโดยใช้ Bootstrap
  • มาพร้อมกับ แพ็คเกจ WebSocket ที่ช่วยให้สามารถสื่อสารระหว่างเว็บเซิร์ฟเวอร์และ R ได้อย่างรวดเร็ว

อ่าน: โครงสร้างการตัดสินใจใน R

ส่วนประกอบของแอป R Shiny

แอพ Shiny มีองค์ประกอบหลักสองอย่าง – วัตถุส่วนต่อประสานผู้ใช้และฟังก์ชั่นเซิร์ฟเวอร์ นี่คืออาร์กิวเมนต์ที่ส่งต่อไปยัง เมธอด ShinyApp เมธอดนี้สร้างแอปพลิเคชันวัตถุโดยใช้อาร์กิวเมนต์

เรียนรู้ วิทยาศาสตร์ข้อมูล จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

อ่านเพิ่มเติม: อัลกอริทึม KNN ใน R

ให้เราเข้าใจ ส่วนพื้นฐานของแอป R Shiny โดยละเอียด:

ฟังก์ชันส่วนต่อประสานผู้ใช้

ฟังก์ชันนี้กำหนดลักษณะที่ปรากฏของเว็บแอปพลิเคชัน ทำให้แอปพลิเคชันโต้ตอบโดยรับข้อมูลจากผู้ใช้และแสดงบนหน้าจอ แท็ก HTML และ CSS สามารถใช้เพื่อทำให้แอปพลิเคชันดูดีขึ้น ดังนั้น ขณะสร้างไฟล์ ui.R คุณสร้างไฟล์ HTML ด้วยฟังก์ชัน R

หากคุณพิมพ์ fluidPage() ในคอนโซล R คุณจะเห็นว่าเมธอดส่งคืนแท็ก <div class=”container-fluid”></div>

ฟังก์ชั่นอินพุตที่แตกต่างกันคือ:

  • selectInput () – วิธีนี้ใช้สำหรับสร้าง HTML แบบเลื่อนลงที่มีตัวเลือกต่างๆ ให้เลือก
  • numericInput () - วิธีการนี้สร้างพื้นที่ป้อนข้อมูลสำหรับการเขียนข้อความหรือตัวเลข
  • radioButtons () – มีปุ่มตัวเลือกสำหรับผู้ใช้เพื่อเลือกอินพุต

วิธีการเลย์เอาต์

ฟีเจอร์เลย์เอาต์ต่างๆ ที่มีอยู่ใน Bootstrap นั้นใช้งานโดย R Shiny ส่วนประกอบคือ:

แผง

เหล่านี้เป็นวิธีการที่จัดกลุ่มองค์ประกอบเข้าด้วยกันเป็นแผงเดียว ซึ่งรวมถึง:

  • AbsolutePanel()
  • อินพุตแผง ()
  • ConditionalPanel()
  • ส่วนหัวพาเนล ()
  • แผงถาวร ()

ฟังก์ชันเค้าโครง

สิ่งเหล่านี้จัดระเบียบพาเนลสำหรับเลย์เอาต์เฉพาะ ซึ่งรวมถึง:

  • แถวของเหลว ()
  • เค้าโครงแนวตั้ง()
  • โฟลว์เลย์เอาต์()
  • splitLayout()
  • แถบด้านข้างเลย์เอาต์ ()

วิธีการส่งออก

เมธอดเหล่านี้ใช้สำหรับแสดงอิมเมจ ตาราง และพล็อตส่วนประกอบเอาต์พุต R พวกเขาเป็น:

  • tableOutput() – วิธีนี้ใช้สำหรับแสดง R table
  • plotOutput() – วิธีนี้ใช้สำหรับแสดงวัตถุพล็อต R

ฟังก์ชั่นเซิร์ฟเวอร์

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

ใช้พารามิเตอร์อินพุตและเอาต์พุต และค่าที่ส่งกลับจะถูกละเว้น วิธีนี้ใช้พารามิเตอร์เซสชันเสริมด้วย

กวดวิชา R Shiny: จะเริ่มต้นกับ R Shiny ได้อย่างไร?

ขั้นตอนในการเริ่มทำงานกับแพ็คเกจ R Shiny มีดังนี้:

  • ไปที่คอนโซล R และพิมพ์คำสั่ง – install.packages("shiny")
  • แพ็คเกจนี้มาพร้อมกับตัวอย่างการใช้งานในตัว 11 ตัวอย่างเพื่อให้คุณเข้าใจว่า Shiny ทำงานอย่างไร

คุณสามารถเริ่มต้นด้วย ตัวอย่าง Hello Shiny เพื่อทำความเข้าใจโครงสร้างพื้นฐาน พิมพ์รหัสนี้เพื่อเรียกใช้ Hello Shiny:

ห้องสมุด(เงา)

runExample(“01_hello”)

ขั้นตอนในการสร้างแอป Shiny ใหม่คือ:

  • เปิด RStudio แล้วไปที่ตัวเลือกไฟล์
  • เลือก New Project ในไดเร็กทอรีและคลิกที่ "Shiny Web" Application
  • คุณจะได้รับฮิสโตแกรมและตัวเลื่อนเพื่อทดสอบการเปลี่ยนแปลงในผลลัพธ์ที่สัมพันธ์กับอินพุต
  • คุณจะได้รับสองสคริปต์ ui.R และ server.R สำหรับการเข้ารหัสและปรับแต่งแอปพลิเคชัน

เคล็ดลับสำหรับการพัฒนาแอพเงา

  • ทดสอบแอปในเบราว์เซอร์เพื่อดูว่ามีลักษณะอย่างไรก่อนส่งสำหรับการผลิต
  • เรียกใช้สคริปต์ทั้งหมดขณะดีบักแอป
  • ระวังข้อผิดพลาดทั่วไป เช่น เครื่องหมายจุลภาค

บทสรุป

หากคุณอยากเรียนรู้เกี่ยวกับวิทยาศาสตร์ข้อมูล ลองดู Executive PG Program in Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานและเสนอกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติ การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม แบบตัวต่อตัว ด้วยที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

ส่วนที่ดีที่สุดของ Shiny คือคุณไม่จำเป็นต้องรู้ HTML, CSS หรือ JavaScript เพื่อใช้งาน ยิ่งกว่านั้น คุณสามารถสร้างแอปพลิเคชันและปรับใช้บน Shinyapps.io เวอร์ชันฟรีได้ ให้ กวดวิชา R Shiny นี้ มีประโยชน์ในขณะที่เริ่มต้น

ประโยชน์ของ R Shiny คืออะไร?

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

Shiny แตกต่างจากแอพพลิเคชั่นทั่วไปอย่างไร?

ให้เราเข้าใจสิ่งนี้ได้ดีขึ้นด้วยความช่วยเหลือของตัวอย่างแอปพลิเคชั่นสภาพอากาศ เมื่อใดก็ตามที่ผู้ใช้โหลดหน้าซ้ำหรือเปลี่ยนอินพุตเล็กๆ บนหน้า แอปจะต้องอัปเดตทั้งหน้าด้วยความช่วยเหลือของ JS การดำเนินการนี้จะช่วยเพิ่มภาระให้กับฝั่งเซิร์ฟเวอร์เพื่อดำเนินการอัปเดต

ในทางกลับกัน Shiny จะแยกหรือโหลดองค์ประกอบแอปซ้ำซึ่งช่วยลดการโหลดของเซิร์ฟเวอร์ โครงสร้างจะมีบทบาทสำคัญในการทำความเข้าใจและการดีบักโค้ด พบว่าการเลื่อนดูเว็บแอปพลิเคชันนั้นค่อนข้างยากสำหรับแอพ Shiny เมื่อเทียบกับแอปพลิเคชันทั่วไป

R Shiny เรียนยากไหม?

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

แม้ว่า Shiny เป็นเครื่องมือที่ทรงพลัง แต่คุณจะพบว่ามันค่อนข้างง่ายที่จะเรียนรู้หากคุณรู้จักการเขียนโปรแกรมใน R ขอแนะนำอย่างยิ่งให้เรียนรู้ R Shiny หากคุณกำลังคิดที่จะเพิ่มสิ่งที่สร้างสรรค์ลงในพอร์ตโฟลิโอของคุณ