
R penuh dengan berbagai fungsi. Di bawah ini saya akan memberikan sepuluh yang paling menarik dari mereka, yang mungkin tidak diketahui banyak orang. Artikel muncul setelah saya menemukan bahwa cerita saya tentang beberapa fitur R yang saya gunakan dalam pekerjaan saya diterima dengan antusias oleh programmer yang sudah dikenal. Jika Anda sudah tahu segalanya tentang itu, maka saya minta maaf atas waktu yang dihabiskan. Pada saat yang sama, jika Anda memiliki sesuatu untuk dibagikan, sarankan sesuatu yang berguna dalam komentar.
Rekomendasi Skillbox: Tutorial Pengembang Python .
Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".
Beralih fungsi
Saya sangat, sangat suka beralih (). Bahkan, ini adalah singkatan untuk pernyataan if ketika memilih nilai sesuai dengan nilai variabel lain. Saya menemukan ini sangat berguna ketika menulis kode yang harus memuat kumpulan data tertentu sesuai dengan pilihan sebelumnya. Misalnya, jika ada variabel yang disebut hewan dan Anda perlu memilih kumpulan data tertentu tergantung pada apakah hewan itu anjing, kucing atau kelinci, tulis ini:
data <- read.csv (
beralih (hewan,
"Dog" = "dogdata.csv",
"Cat" = "catdata.csv",
"Kelinci" = "rabbitdata.csv")
)Fitur ini akan berguna dalam aplikasi Shiny di mana Anda perlu memuat berbagai set data atau file lingkungan tergantung pada satu atau beberapa item menu entri.
Pintasan keyboard untuk RStudio
Retasan ini tidak terlalu banyak untuk R seperti halnya untuk RStudio IDE. Meskipun demikian, hot key selalu sangat nyaman, memungkinkan Anda menghemat waktu saat memasukkan teks. Favorit saya adalah Ctrl + Shift + M untuk%>% operator dan Alt + untuk <- operator.
Untuk melihat semua tombol pintas, cukup tekan Alt + Shift + K di RStudio.
Paket Flexdashboard
Saat Anda perlu meluncurkan panel kontrol Shiny dengan cepat, tidak ada yang lebih baik daripada paket dasbor. Ini memberikan kemampuan untuk bekerja dengan pintasan HTML, yang pada gilirannya membuatnya mudah untuk membuat sidebar, baris dan kolom dengan mudah dan tanpa masalah. Ada juga kemampuan untuk menggunakan bilah judul, yang memungkinkan Anda untuk meletakkannya di halaman aplikasi yang berbeda, meninggalkan ikon, pintasan di Github, alamat email dan banyak lagi.
Paket ini memungkinkan Anda untuk bekerja dalam kerangka kerja Rmarkdown, sehingga Anda dapat menempatkan semua aplikasi dalam satu file Rmd, daripada mendistribusikannya ke server dan file UI yang berbeda, seperti yang dilakukan, misalnya, menggunakan shinydashboard. Saya menggunakan flexdashboard setiap kali saya perlu membuat panel kontrol prototipe sederhana sebelum mulai mengerjakan sesuatu yang rumit. Fitur ini memungkinkan Anda membuat prototipe dalam satu jam.
Req dan memvalidasi fungsi dalam R Shiny
Pengembangan di R Shiny dapat membingungkan Anda, terutama ketika Anda terus-menerus mendapatkan pesan kesalahan aneh yang membuatnya tidak mungkin untuk memahami apa yang terjadi. Namun seiring waktu, Shiny mengembangkan dan meningkatkan, semakin banyak fungsi muncul di sini yang memungkinkan Anda untuk memahami penyebab kesalahan. Jadi, req () menyelesaikan masalah dengan kesalahan "diam", padahal secara umum tidak jelas apa masalahnya. Dengannya, Anda dapat menampilkan elemen antarmuka pengguna yang terkait dengan tindakan sebelumnya. Mari kita ilustrasikan dengan sebuah contoh:
output $ go_button <- shiny :: renderUI ({
# hanya tombol tampilan jika input hewan telah dipilih
shiny :: req (input $ animal)
# tombol tampilan
shiny :: actionButton ("go",
rekatkan ("Perilaku", masukkan $ hewan, "analisis!")
)
})validate () memeriksa semuanya sebelum rendering dan memungkinkan Anda untuk menampilkan pesan kesalahan - misalnya, bahwa pengguna telah mengunggah file yang salah:
# dapatkan file input csv
inFile <- input $ file1
data <- inFile $ datapath
# render table hanya jika itu anjing
shiny :: renderTable ({
# periksa apakah itu file anjing, bukan kucing atau kelinci
shiny :: validate (
butuhkan ("Nama Anjing"% dalam% colnames (data)),
"Kolom Nama Anjing tidak ditemukan - apakah Anda memuat file yang benar?"
)
data
})Informasi lebih lanjut tentang semua fungsi ini
dapat ditemukan di sini .
Menyimpan kredensial Anda sendiri di lingkungan sistem
Jika Anda berencana untuk membagikan kode tempat Anda ingin memasukkan data akses, gunakan lingkungan sistem untuk menghindari menempatkan kredensial Anda sendiri di Github atau layanan lain. Contoh penempatan:
Sys.setenv (
DSN = "database_name",
UID = "ID Pengguna",
PASS = "Kata Sandi"
)Sekarang Anda dapat masuk menggunakan variabel lingkungan:
db <- DBI :: dbConnect (
drv = odbc :: odbc (),
dsn = Sys.getenv ("DSN"),
uid = Sys.getenv ("UID"),
pwd = Sys.getenv ("LULUS")
)Bahkan lebih nyaman (terutama jika Anda sering menggunakan data) untuk menetapkannya sebagai variabel lingkungan langsung di sistem operasi. Dalam hal ini, mereka akan selalu tersedia dan Anda tidak harus menentukannya dalam kode.
Otomatisasi rapi dengan styler
Paket styler dapat membantu membersihkan kode, yang memiliki banyak fitur untuk secara otomatis mengubah gaya kode menjadi rapi. Semua yang diperlukan untuk ini adalah menjalankan styler :: style_file () untuk skrip Anda yang bermasalah. Paket akan melakukan banyak hal (tetapi tidak semua) untuk mengembalikan ketertiban.
Parameterisasi Dokumen R Penurunan Nilai
Jadi, Anda telah membuat dokumen Markdown R yang sangat baik di mana Anda menganalisis berbagai fakta tentang anjing. Dan kemudian terpikir oleh Anda bahwa akan lebih baik melakukan pekerjaan yang sama, tetapi hanya dengan kucing. Tidak apa-apa, Anda dapat mengotomatiskan pelaporan kucing hanya dengan satu perintah. Untuk melakukan ini, Anda hanya perlu parameterisasi dokumen penurunan harga R Anda.
Anda dapat melakukan ini dengan mengatur parameter untuk header YAML di dokumen yang ditentukan, dan kemudian nilai parameter.
- judul: "Analisis Hewan"
penulis: "Keith McNulty"
tanggal: "21 Maret 2019"
keluaran:
html_dokumen:
code_folding: "sembunyikan"
params:
nama hewan:
nilai: Anjing
pilihan:
- Anjing
- kucing
- Kelinci
years_of_study:
input: slider
min: 2000
maks: 2019
langkah: 1
putaran: 1
sep: ''
nilai: [2010, 2017]
---Sekarang Anda dapat mendaftarkan semua variabel dalam kode dokumen sebagai params $ animal_name dan params $ years_of_study. Kemudian kita akan menggunakan menu drop-down Knit (atau knit_with_parameters ()) dan mendapatkan kesempatan untuk memilih parameter.

pengungkapan
revejs - paket yang memungkinkan Anda membuat presentasi HTML yang hebat dengan kode-R bawaan, navigasi intuitif, dan menu slide. Pintasan HTML memungkinkan Anda membuat struktur slide bersarang dengan gaya yang berbeda dengan cepat. Yah, HTML akan berjalan di perangkat apa pun, sehingga presentasi dapat dibuka di setiap ponsel, tablet, atau laptop. Pengungkapan informasi dapat dikonfigurasikan dengan menginstal paket dan memanggilnya di header YAML. Berikut ini sebuah contoh:
- judul: "Mengeksplorasi Tepi Semesta People Analytics"
penulis: "Keith McNulty"
keluaran:
revejs :: revejs_presentation:
pusat: ya
templat: starwars.html
tema: hitam
tanggal: "Rapat Analisis SDM London - 18 Maret 2019"
resource_files:
- darth.png
- deathstar.png
- hanchewy.png
- milenium.png
- r2d2-threepio.png
- starwars.html
- starwars.png
- stormtrooper.png
---Kode sumber presentasi
diposting di sini , dan presentasi <a
href=foreign rpubs.com/keithmcnulty/hr_meetup_london'> ada di sini.

Tag HTML dalam R Shiny
Sebagian besar programmer tidak memanfaatkan sepenuhnya tag HTML yang dimiliki R Shiny. Tapi ini hanya 110 tag yang memungkinkan Anda membuat panggilan singkat untuk fungsi HTML atau pemutaran media. Sebagai contoh, saya baru-baru ini menggunakan tag $ audio untuk memainkan suara "menang", yang memperingatkan pengguna tentang penyelesaian tugas.
Paket pujian
Menggunakan paket ini sangat sederhana, tetapi Anda membutuhkannya untuk menampilkan pujian kepada pengguna. Tampaknya aneh, tetapi mereka sangat menyukainya.

Skillbox merekomendasikan: