10 คุณสมบัติ R ที่มีประโยชน์ที่คุณอาจไม่รู้

10 คุณสมบัติ R ที่มีประโยชน์ที่คุณอาจไม่รู้

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()) และสามารถเลือกพารามิเตอร์ได้

10 คุณสมบัติ R ที่มีประโยชน์ที่คุณอาจไม่รู้

เปิดเผย

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
-

ซอร์สโค้ดการนำเสนอ โพสต์ที่นี่และตัวเธอเองrpubs.com/keithmcnulty/hr_meetup_london'>การนำเสนอ - ที่นี่

10 คุณสมบัติ R ที่มีประโยชน์ที่คุณอาจไม่รู้

แท็ก HTML ใน R Shiny

โปรแกรมเมอร์ส่วนใหญ่ไม่ได้ใช้ประโยชน์จากแท็ก HTML ที่ R Shiny มีอย่างเต็มที่ แต่แท็กเหล่านี้มีเพียง 110 แท็กเท่านั้น ซึ่งทำให้สามารถสร้างการเรียกสั้นๆ สำหรับฟังก์ชัน HTML หรือการเล่นสื่อได้ ตัวอย่างเช่น ฉันเพิ่งใช้ tags$audio เพื่อเล่นเสียง "ชัยชนะ" ที่แจ้งเตือนผู้ใช้เมื่องานเสร็จสมบูรณ์

แพ็คเกจสรรเสริญ

การใช้แพ็คเกจนี้ง่ายมาก แต่จำเป็นต้องแสดงความชื่นชมต่อผู้ใช้ ดูแปลกแต่จริงๆ แล้วพวกเขาก็ชอบนะ

10 คุณสมบัติ R ที่มีประโยชน์ที่คุณอาจไม่รู้

Skillbox แนะนำ:

ที่มา: will.com

เพิ่มความคิดเห็น