R เต็มไปด้วยฟังก์ชันที่หลากหลาย ด้านล่างนี้ฉันจะให้สิ่งที่น่าสนใจที่สุดสิบประการซึ่งหลายคนอาจไม่รู้ บทความนี้ปรากฏขึ้นหลังจากที่ฉันค้นพบว่าเรื่องราวของฉันเกี่ยวกับคุณลักษณะบางอย่างของ R ที่ฉันใช้ในการทำงานได้รับการตอบรับอย่างกระตือรือร้นจากเพื่อนโปรแกรมเมอร์ หากคุณรู้ทุกอย่างเกี่ยวกับเรื่องนี้แล้ว ฉันขอโทษที่ทำให้เสียเวลา ในขณะเดียวกันหากคุณมีอะไรจะแบ่งปันแนะนำสิ่งที่เป็นประโยชน์ในความคิดเห็น
Skillbox แนะนำ: หลักสูตรภาคปฏิบัติ
“ผู้พัฒนาหลาม” .เราเตือนคุณ: สำหรับผู้อ่าน "Habr" ทุกคน - ส่วนลด 10 rubles เมื่อลงทะเบียนในหลักสูตร Skillbox ใด ๆ โดยใช้รหัสส่งเสริมการขาย "Habr"
ฟังก์ชั่นสวิตช์
ฉันชอบ switch() จริงๆ อันที่จริง มันเป็นการจดชวเลขที่สะดวกสำหรับคำสั่ง if เมื่อเลือกค่าตามค่าของตัวแปรอื่น ฉันพบว่าสิ่งนี้มีประโยชน์อย่างยิ่งเมื่อฉันเขียนโค้ดที่ต้องโหลดชุดข้อมูลเฉพาะตามการเลือกก่อนหน้า ตัวอย่างเช่น ถ้าคุณมีตัวแปรชื่อสัตว์ และคุณต้องการเลือกชุดข้อมูลเฉพาะโดยขึ้นอยู่กับว่าสัตว์นั้นเป็นสุนัข แมว หรือกระต่าย ให้เขียนดังนี้:
ข้อมูล < — read.csv(
สวิตช์(สัตว์
"สุนัข" = "dogdata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)
คุณสมบัตินี้จะมีประโยชน์ในแอปพลิเคชัน Shiny ที่คุณต้องการโหลดชุดข้อมูลหรือไฟล์สภาพแวดล้อมที่แตกต่างกัน โดยขึ้นอยู่กับรายการเมนูอินพุตตั้งแต่หนึ่งรายการขึ้นไป
ปุ่มลัดสำหรับ RStudio
แฮ็คนี้ไม่มากนักสำหรับ R แต่สำหรับ RStudio IDE อย่างไรก็ตาม ปุ่มลัดนั้นสะดวกมากเสมอ ช่วยให้คุณประหยัดเวลาในการป้อนข้อความ รายการโปรดของฉันคือ Ctrl+Shift+M สำหรับตัวดำเนินการ %>% และ Alt+- สำหรับตัวดำเนินการ <-
หากต้องการดูปุ่มลัดทั้งหมด เพียงกด Alt+Shift+K ใน RStudio
แพ็คเกจแดชบอร์ดแบบยืดหยุ่น
เมื่อคุณต้องการเปิดแดชบอร์ด Shiny ของคุณอย่างรวดเร็ว ไม่มีอะไรจะดีไปกว่าแพ็คเกจแดชบอร์ด ให้ความสามารถในการทำงานกับทางลัด HTML ซึ่งจะทำให้การสร้างแถบด้านข้าง แถว และคอลัมน์เป็นเรื่องง่ายและไม่ยุ่งยาก นอกจากนี้ยังมีความสามารถในการใช้แถบชื่อเรื่องซึ่งช่วยให้คุณสามารถวางไว้บนหน้าต่างๆ ของแอปพลิเคชัน ออกจากไอคอน ทางลัดบน Github ที่อยู่อีเมล และอื่นๆ อีกมากมาย
แพ็คเกจนี้อนุญาตให้คุณทำงานภายในกรอบงานของ Rmarkdown ดังนั้นคุณสามารถวางแอปพลิเคชันทั้งหมดไว้ในไฟล์ Rmd ไฟล์เดียว และไม่กระจายมันไปยังเซิร์ฟเวอร์และไฟล์ UI ที่แตกต่างกัน เช่นเดียวกับที่ทำเสร็จแล้ว เช่น การใช้ Shinydashboard ฉันใช้ flexdashboard ทุกครั้งที่ต้องการสร้างต้นแบบแดชบอร์ดแบบง่ายๆ ก่อนที่จะทำงานกับสิ่งที่ซับซ้อน คุณลักษณะนี้ช่วยให้คุณสร้างต้นแบบได้ภายในหนึ่งชั่วโมง
req และตรวจสอบฟังก์ชันใน R Shiny
การพัฒนาใน R Shiny อาจทำให้เกิดความสับสน โดยเฉพาะอย่างยิ่งเมื่อคุณได้รับข้อความแสดงข้อผิดพลาดแปลกๆ ที่ทำให้เข้าใจได้ยากว่าเกิดอะไรขึ้น แต่เมื่อเวลาผ่านไป Shiny ก็พัฒนาและปรับปรุง มีฟังก์ชั่นต่างๆ ปรากฏขึ้นที่นี่มากขึ้นเรื่อยๆ ซึ่งช่วยให้คุณเข้าใจสาเหตุของข้อผิดพลาดได้ ดังนั้น req() แก้ปัญหาด้วยข้อผิดพลาด "เงียบ" เมื่อโดยทั่วไปไม่ชัดเจนว่าเกิดอะไรขึ้น ช่วยให้คุณสามารถแสดงองค์ประกอบ UI ที่เกี่ยวข้องกับการกระทำก่อนหน้านี้ เรามาอธิบายด้วยตัวอย่าง:
เอาท์พุต$go_button < — เงา::renderUI({
# ปุ่มแสดงเฉพาะเมื่อมีการเลือกอินพุตของสัตว์
เงา::req (อินพุต $ สัตว์)
#ปุ่มแสดงผล
มันเงา::actionButton("ไป",
paste("ประพฤติ", ใส่$สัตว์, "วิเคราะห์!")
)
})
validate() ตรวจสอบทุกอย่างก่อนเรนเดอร์และให้ตัวเลือกแก่คุณในการพิมพ์ข้อความแสดงข้อผิดพลาด - ตัวอย่างเช่น ผู้ใช้อัปโหลดไฟล์ผิด:
# รับไฟล์อินพุต csv
inFile < — อินพุต $file1
ข้อมูล < — inFile$datapath
# เรนเดอร์ตารางเฉพาะในกรณีที่เป็นสุนัข
เงา::renderTable({
#เช็คว่าเป็นไฟล์หมา ไม่ใช่แมวหรือกระต่าย
เงา::ตรวจสอบ (
need("ชื่อสุนัข" %in% colnames(data)),
“ไม่พบคอลัมน์ชื่อสุนัข คุณโหลดไฟล์ถูกต้องหรือไม่”
)
ข้อมูล
})
ข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติทั้งหมดนี้
การจัดเก็บข้อมูลประจำตัวของคุณสำหรับตัวคุณเองในสภาพแวดล้อมของระบบ
หากคุณวางแผนที่จะแชร์รหัสที่กำหนดให้คุณต้องป้อนข้อมูลประจำตัว ให้ใช้สภาพแวดล้อมของระบบเพื่อหลีกเลี่ยงการโฮสต์ข้อมูลประจำตัวของคุณเองบน Github หรือบริการอื่น ตำแหน่งตัวอย่าง:
Sys.setenv(
DSN = "ฐานข้อมูล_ชื่อ",
UID = "รหัสผู้ใช้",
ผ่าน = "รหัสผ่าน"
)
ตอนนี้คุณสามารถเข้าสู่ระบบโดยใช้ตัวแปรสภาพแวดล้อม:
db < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("ผ่าน")
)
จะสะดวกยิ่งขึ้น (โดยเฉพาะอย่างยิ่งหากคุณใช้ข้อมูลบ่อยครั้ง) เพื่อตั้งค่าเป็นตัวแปรสภาพแวดล้อมในระบบปฏิบัติการโดยตรง ในกรณีนี้จะพร้อมใช้งานเสมอและคุณไม่จำเป็นต้องระบุในโค้ด
จัดระเบียบอัตโนมัติด้วยอุปกรณ์จัดแต่งทรง
แพ็คเกจ styler สามารถช่วยคุณล้างโค้ดของคุณได้ โดยมีตัวเลือกมากมายสำหรับการนำสไตล์โค้ดมาสู่ tidyverse โดยอัตโนมัติ สิ่งที่คุณต้องทำคือเรียกใช้ styler::style_file() กับสคริปต์ที่มีปัญหาของคุณ แพ็คเกจจะทำอะไรได้มาก (แต่ไม่ใช่ทุกอย่าง) เพื่อเรียกคืนคำสั่งซื้อ
การกำหนดพารามิเตอร์เอกสาร R Markdown
คุณจึงได้สร้างเอกสาร R Markdown ที่ยอดเยี่ยม ซึ่งคุณวิเคราะห์ข้อเท็จจริงต่างๆ เกี่ยวกับสุนัข แล้วเกิดกับคุณว่ามันจะดีกว่าถ้าทำงานแบบเดียวกัน แต่กับแมวเท่านั้น ไม่มีปัญหา คุณสามารถสร้างรายงาน cat โดยอัตโนมัติได้ด้วยคำสั่งเดียว ในการดำเนินการนี้ คุณจะต้องกำหนดพารามิเตอร์ให้กับเอกสารมาร์กดาวน์ R ของคุณเท่านั้น
คุณสามารถทำได้โดยการตั้งค่าพารามิเตอร์สำหรับส่วนหัว YAML ในเอกสารที่ระบุ จากนั้นตั้งค่าพารามิเตอร์ค่า
— ชื่อเรื่อง: “การวิเคราะห์สัตว์”
ผู้เขียน: "คีธ แมคนัลตี"
วันที่: "21 มีนาคม 2019"
เอาท์พุท:
html_document:
code_folding: "ซ่อน"
พารามิเตอร์:
สัตว์_ชื่อ:
ความคุ้มค่า: สุนัข
ทางเลือก:
-สุนัข
-แมว
- กระต่าย
ปี_ของ_การศึกษา:
อินพุต: แถบเลื่อน
นาที: 2000
สูงสุด: 2019
ขั้นตอนที่ 1
รอบ: 1
กันยายน: "
มูลค่า: [2010, 2017] —
ตอนนี้คุณสามารถลงทะเบียนตัวแปรทั้งหมดในโค้ดเอกสารเป็น params$animal_name และ params$years_of_study จากนั้นเราจะใช้เมนูแบบเลื่อนลง Knit (หรือ knit_with_parameters()) และสามารถเลือกพารามิเตอร์ได้
เปิดเผย
Revjs เป็นแพ็คเกจที่ช่วยให้คุณสร้างงานนำเสนอ HTML ที่ยอดเยี่ยมด้วยโค้ด R ในตัว การนำทางที่ใช้งานง่ายและเมนูสไลด์ ทางลัด HTML ช่วยให้คุณสร้างโครงสร้างสไลด์แบบซ้อนได้อย่างรวดเร็วพร้อมตัวเลือกสไตล์ต่างๆ HTML จะทำงานบนอุปกรณ์ทุกชนิด ดังนั้นจึงสามารถเปิดงานนำเสนอได้บนโทรศัพท์ แท็บเล็ต หรือแล็ปท็อปทุกเครื่อง การเปิดเผยข้อมูลสามารถกำหนดค่าได้โดยการติดตั้งแพ็คเกจและเรียกใช้ในส่วนหัว YAML นี่คือตัวอย่าง:
— ชื่อ: “การสำรวจขอบจักรวาลการวิเคราะห์ผู้คน”
ผู้เขียน: "คีธ แมคนัลตี"
เอาท์พุท:
เปิดเผย js::revealjs_presentation:
เซ็นเตอร์: ใช่
แม่แบบ:starwars.html
ธีม: สีดำ
วันที่: “HR Analytics Meetup London – 18 มีนาคม 2019”
ทรัพยากร_ไฟล์:
— darth.png
- เดธสตาร์.png
- hanchewy.png
- สหัสวรรษ.png
- r2d2-threepio.png
-สตาร์วอร์ส.html
—สตาร์วอร์ส.png
—สตอร์มทรูปเปอร์.png
-
ซอร์สโค้ดการนำเสนอ
แท็ก HTML ใน R Shiny
โปรแกรมเมอร์ส่วนใหญ่ไม่ได้ใช้ประโยชน์จากแท็ก HTML ที่ R Shiny มีอย่างเต็มที่ แต่แท็กเหล่านี้มีเพียง 110 แท็กเท่านั้น ซึ่งทำให้สามารถสร้างการเรียกสั้นๆ สำหรับฟังก์ชัน HTML หรือการเล่นสื่อได้ ตัวอย่างเช่น ฉันเพิ่งใช้ tags$audio เพื่อเล่นเสียง "ชัยชนะ" ที่แจ้งเตือนผู้ใช้เมื่องานเสร็จสมบูรณ์
แพ็คเกจสรรเสริญ
การใช้แพ็คเกจนี้ง่ายมาก แต่จำเป็นต้องแสดงความชื่นชมต่อผู้ใช้ ดูแปลกแต่จริงๆ แล้วพวกเขาก็ชอบนะ
Skillbox แนะนำ:
- หลักสูตรภาคปฏิบัติสองปี
"ฉันเป็นนักพัฒนาเว็บ PRO" .- คอร์สออนไลน์
"นักพัฒนา C#" .- หลักสูตรปีปฏิบัติ
"นักพัฒนา PHP จาก 0 ถึง PRO" .
ที่มา: will.com