10 Ciri R Berguna Yang Mungkin Anda Tidak Tahu

10 Ciri R Berguna Yang Mungkin Anda Tidak Tahu

R penuh dengan pelbagai fungsi. Di bawah ini saya akan memberikan sepuluh yang paling menarik daripada mereka, yang mungkin ramai tidak tahu. Artikel itu muncul selepas saya mendapati bahawa cerita saya tentang beberapa ciri R yang saya gunakan dalam kerja saya diterima dengan penuh semangat oleh rakan pengaturcara. Jika anda sudah mengetahui segala-galanya tentang ini, maka saya memohon maaf kerana membuang masa anda. Pada masa yang sama, jika anda mempunyai sesuatu untuk dikongsi, cadangkan sesuatu yang berguna dalam ulasan.

Skillbox mengesyorkan: Kursus praktikal "Pembangun Python".

Kami mengingatkan: untuk semua pembaca "Habr" - diskaun sebanyak 10 rubel apabila mendaftar dalam mana-mana kursus Skillbox menggunakan kod promosi "Habr".

fungsi suis

Saya sangat, sangat suka suis(). Malah, ia adalah trengkas yang mudah untuk pernyataan if apabila memilih nilai berdasarkan nilai pembolehubah lain. Saya mendapati ini amat berguna apabila saya menulis kod yang perlu memuatkan set data tertentu berdasarkan pilihan sebelumnya. Contohnya, jika anda mempunyai pembolehubah bernama haiwan dan anda ingin memilih set data tertentu bergantung pada sama ada haiwan itu anjing, kucing atau arnab, tulis ini:

data < — read.csv(
suis (haiwan,
"dog" = "dogdata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)

Ciri ini berguna dalam aplikasi Berkilat di mana anda perlu memuatkan set data atau fail persekitaran yang berbeza bergantung pada satu atau lebih item menu input.

Kekunci pintas untuk RStudio

Godam ini bukan untuk R, tetapi untuk RStudio IDE. Walau bagaimanapun, kekunci pintas sentiasa sangat mudah, membolehkan anda menjimatkan masa apabila memasukkan teks. Kegemaran saya ialah Ctrl+Shift+M untuk operator %>% dan Alt+- untuk <- operator.

Untuk melihat semua kekunci panas, hanya tekan Alt+Shift+K dalam RStudio.

pakej flexdashboard

Apabila anda perlu melancarkan papan pemuka Berkilat anda dengan cepat, tiada yang lebih baik daripada pakej papan pemuka. Ia menyediakan keupayaan untuk bekerja dengan pintasan HTML, yang seterusnya menjadikannya mudah dan bebas kerumitan untuk membuat bar sisi, baris dan lajur. Terdapat juga keupayaan untuk menggunakan bar tajuk, yang membolehkan anda meletakkannya pada halaman aplikasi yang berbeza, meninggalkan ikon, pintasan pada Github, alamat e-mel dan banyak lagi.

Pakej ini membolehkan anda bekerja dalam rangka kerja Rmarkdown, jadi anda boleh meletakkan semua aplikasi dalam satu fail Rmd, dan tidak mengedarkannya merentas pelayan dan fail UI yang berbeza, seperti yang dilakukan, contohnya, menggunakan shinydashboard. Saya menggunakan flexdashboard setiap kali saya perlu mencipta prototaip papan pemuka mudah sebelum mengerjakan sesuatu yang kompleks. Ciri ini membolehkan anda membuat prototaip dalam masa sejam.

req dan sahkan fungsi dalam R Shiny

Membangunkan dalam R Shiny boleh mengelirukan, terutamanya apabila anda terus menerima mesej ralat pelik yang menyukarkan untuk memahami perkara yang sedang berlaku. Tetapi dari masa ke masa, Shiny berkembang dan bertambah baik, semakin banyak fungsi muncul di sini yang membolehkan anda memahami punca ralat. Jadi, req() menyelesaikan masalah dengan ralat "senyap", apabila ia secara amnya tidak jelas apa yang sedang berlaku. Ia membolehkan anda memaparkan elemen UI yang dikaitkan dengan tindakan sebelumnya. Mari kita jelaskan dengan contoh:

output$go_button < — shiny::renderUI({

# butang paparan sahaja jika input haiwan telah dipilih

berkilat::req(input$haiwan)

# butang paparan

shiny::actionButton("pergi",
paste("Kelakuan", masukkan$haiwan, "analisis!")
)
})

validate() menyemak segala-galanya sebelum membuat dan memberi anda pilihan untuk mencetak mesej ralat - contohnya, bahawa pengguna memuat naik fail yang salah:

# dapatkan fail input csv

inFile < — input$file1
data < — inFile$datapath

# render jadual hanya jika ia adalah anjing

berkilat::renderTable({
# semak bahawa ia adalah fail anjing, bukan kucing atau arnab
berkilat::sahkan(
need("Nama Anjing" %in% colnames(data)),
“Lajur Nama Anjing tidak ditemui — adakah anda memuatkan fail yang betul?”
)

data
})

Maklumat lanjut tentang semua ciri ini boleh didapati di sini.

Menyimpan bukti kelayakan anda untuk diri sendiri dalam persekitaran sistem

Jika anda bercadang untuk berkongsi kod yang memerlukan anda memasukkan bukti kelayakan, gunakan persekitaran sistem untuk mengelakkan mengehos bukti kelayakan anda sendiri pada Github atau perkhidmatan lain. Contoh penempatan:

Sys.setenv(
DSN = "nama_pangkalan data",
UID = "ID Pengguna",
LULUS = "Kata Laluan"
)

Kini anda boleh log masuk menggunakan pembolehubah persekitaran:

db < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("LULUS")
)

Ia lebih mudah (terutamanya jika anda menggunakan data dengan kerap) untuk menetapkannya sebagai pembolehubah persekitaran secara langsung dalam sistem pengendalian. Dalam kes ini, ia akan sentiasa tersedia dan anda tidak perlu menyatakannya dalam kod.

Automatikkan tidyverse dengan styler

Pakej penggaya boleh membantu anda membersihkan kod anda; ia mempunyai banyak pilihan untuk membawa gaya kod secara automatik menjadi kemas. Apa yang anda perlu lakukan ialah jalankan styler::style_file() pada skrip bermasalah anda. Pakej akan melakukan banyak perkara (tetapi bukan segala-galanya) untuk memulihkan keadaan.

Parameterisasi Dokumen Markdown R

Jadi anda telah mencipta dokumen R Markdown yang hebat di mana anda menganalisis pelbagai fakta tentang anjing. Dan kemudian ia berlaku kepada anda bahawa lebih baik melakukan kerja yang sama, tetapi hanya dengan kucing. Tiada masalah, anda boleh mengautomasikan penciptaan laporan kucing dengan hanya satu arahan. Untuk melakukan ini, anda hanya perlu parameterkan dokumen penurunan nilai R anda.

Anda boleh melakukan ini dengan menetapkan parameter untuk pengepala YAML dalam dokumen yang ditentukan, dan kemudian menetapkan parameter nilai.

— tajuk: “Analisis Haiwan”
pengarang: "Keith McNulty"
tarikh: "21 Mac 2019"
pengeluaran:
html_document:
code_folding: "sembunyikan"
param:
nama_haiwan:
nilai: Anjing
pilihan:
—Anjing
—Kucing
- Arnab
tahun_belajar:
input: peluncur
min: 2000
maksimum: 2019
langkah 1
pusingan: 1
sep:"
nilai: [2010, 2017] —

Kini anda boleh mendaftarkan semua pembolehubah dalam kod dokumen sebagai params$animal_name dan params$years_of_study. Kemudian kami akan menggunakan menu lungsur Knit (atau knit_with_parameters()) dan boleh memilih parameter.

10 Ciri R Berguna Yang Mungkin Anda Tidak Tahu

revealjs

revealjs ialah pakej yang membolehkan anda mencipta persembahan HTML yang hebat dengan kod R terbina dalam, navigasi intuitif dan menu slaid. Pintasan HTML membolehkan anda membuat struktur slaid bersarang dengan cepat dengan pilihan penggayaan yang berbeza. Nah, HTML akan dijalankan pada mana-mana peranti, jadi pembentangan boleh dibuka pada setiap telefon, tablet atau komputer riba. Pendedahan maklumat boleh dikonfigurasikan dengan memasang pakej dan memanggilnya dalam pengepala YAML. Berikut ialah contoh:

— tajuk: "Meneroka Edge of the People Analytics Universe"
pengarang: "Keith McNulty"
pengeluaran:
revealjs::revealjs_presentation:
pusat: ya
template:starwars.html
tema: hitam
tarikh: “Pertemuan Analitis HR London – 18 Mac, 2019”
fail_sumber:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Kod sumber persembahan disiarkan di sini, dan dirinya sendirirpubs.com/keithmcnulty/hr_meetup_london'>pembentangan - di sini.

10 Ciri R Berguna Yang Mungkin Anda Tidak Tahu

Tag HTML dalam R Shiny

Kebanyakan pengaturcara tidak memanfaatkan sepenuhnya teg HTML yang dimiliki oleh R Shiny. Tetapi ini hanya 110 tag, yang memungkinkan untuk membuat panggilan pendek untuk fungsi HTML atau main balik media. Sebagai contoh, saya baru-baru ini menggunakan tags$audio untuk memainkan bunyi "kemenangan" yang memberi amaran kepada pengguna apabila tugasan telah selesai.

Pakej pujian

Menggunakan pakej ini sangat mudah, tetapi ia diperlukan untuk memaparkan pujian kepada pengguna. Nampak pelik, tetapi mereka sebenarnya menyukainya.

10 Ciri R Berguna Yang Mungkin Anda Tidak Tahu

Skillbox mengesyorkan:

Sumber: www.habr.com

Tambah komen