Bagaimana menjalankan R 4.0 di Docker - dan 3 fitur R 4.0 baru yang keren

Ada beberapa perubahan dan pembaruan menarik di R 4.0. Di sini saya akan melihat tiga di antaranya. Selain itu, saya akan memberi Anda petunjuk langkah demi langkah untuk menginstal R 4.0 sehingga tidak akan mengganggu instalasi R yang ada - dengan menjalankan R dengan Docker.

Docker adalah platform untuk membuat "kontainer" - lingkungan terisolasi yang sepenuhnya mandiri di komputer Anda. Pikirkan mereka seperti sistem mini di sistem Anda. Mereka menyertakan sistem operasi mereka sendiri, dan kemudian apa pun yang ingin Anda tambahkan ke dalamnya - perangkat lunak aplikasi, skrip, data, dll. Wadah berguna untuk banyak hal, tetapi di sini saya hanya akan fokus pada satu: menguji perangkat lunak versi baru tanpa mengacaukan pengaturan lokal Anda saat ini.

Menjalankan R 4.0 dan rilis pratinjau terbaru RStudio dalam wadah Docker cukup mudah. Jika Anda tidak ingin mengikuti bagian Docker dari tutorial ini, dan Anda hanya ingin melihat apa yang baru di R, gulir ke bawah ke bagian "Tiga fitur R 4.0 baru".

Jalankan R 4.0 dalam wadah Docker

Jika Anda akan ingin mengikuti, instal desktop yang Docker pada sistem Anda jika Anda belum memilikinya: Kepala ke //www.docker.com/products/docker-desktop dan men-download versi desktop yang tepat untuk komputer Anda (Windows, Mac, atau Linux). Lalu, luncurkan. Anda harus melihat ikon Docker paus berjalan di suatu tempat di sistem Anda.

Sharon Machlis,

Selanjutnya, kita membutuhkan image Docker untuk R 4.0. Anda dapat menganggap image Docker sebagai sekumpulan instruksi untuk membuat container dengan menyertakan software tertentu. Terima kasih kepada Adelmo Filho (seorang ilmuwan data di Brasil) dan proyek Rocker R Docker, yang menyediakan beberapa gambar Docker yang sangat berguna. Saya memodifikasi gambar Docker mereka sedikit untuk membuatnya seperti yang saya gunakan dalam tutorial ini.

Berikut adalah sintaks untuk menjalankan image Docker di sistem Anda sendiri untuk membuat container.

docker run --rm -p 8787: 8787 -v / path / ke / local / dir: / home / rstudio / newdir username / docker_image_name: image_tag

dockeradalah bagaimana Anda perlu memulai perintah Docker. runberarti saya ingin menjalankan gambar dan membuat wadah dari gambar itu. The --rmberarti bendera menghapus wadah ketika selesai. Anda tidak harus memasukkan --rm; tetapi jika Anda menjalankan banyak container dan tidak menghapusnya, container tersebut akan mulai menggunakan banyak ruang disk. Ini -p 8787:8787hanya diperlukan untuk gambar yang harus dijalankan pada port sistem, yang dilakukan RStudio (seperti halnya Shiny jika Anda berencana untuk memasukkannya suatu hari nanti). Perintah di atas menentukan port 8787, yang merupakan default biasa RStudio.

Ini -vmenciptakan volume. Ingat ketika saya mengatakan kontainer Docker mandiri dan terisolasi? Itu artinya terisolasi . Secara default, penampung tidak dapat mengakses apa pun di luarnya, dan seluruh sistem Anda tidak dapat mengakses apa pun di dalam penampung. Tetapi jika Anda mengatur volume, Anda dapat menautkan folder lokal dengan folder di dalam wadah. Kemudian mereka secara otomatis disinkronkan. Sintaksnya:

-v jalur / ke / local / direktori: / jalur / ke / container / direktori

Dengan RStudio, biasanya Anda gunakan /home/rstudio/name_of_new_directoryuntuk direktori kontainer.

Di akhir docker runperintah adalah nama gambar yang ingin Anda jalankan. Image saya, seperti banyak image Docker lainnya, disimpan di Docker Hub, layanan yang disiapkan oleh Docker untuk berbagi image. Seperti GitHub, Anda mengakses proyek dengan menentukan file username/reponame. Dalam hal ini Anda juga biasanya menambahkan :the_tag, yang membantu jika ada versi berbeda dari gambar yang sama.

Di bawah ini adalah kode yang dapat Anda modifikasi untuk menjalankan gambar saya dengan R 4.0 dan rilis pratinjau terbaru RStudio di sistem Anda. Pastikan untuk mengganti path ke salah satu direktori Anda untuk / Users / smachlis / Document / MoreWithR.  Anda dapat menjalankan ini di jendela terminal Mac atau jendela command prompt Windows atau jendela PowerShell.

docker run --rm -p 8787: 8787 -v / Users / smachlis / Documents / MoreWithR: / home / rstudio / morewithr sharon000 / my_rstudio_image: version1

Saat Anda menjalankan perintah ini untuk pertama kalinya, Docker perlu mengunduh image dari Docker Hub, jadi mungkin perlu waktu beberapa saat. Setelah itu, kecuali Anda menghapus salinan lokal gambar Anda, itu akan lebih cepat.

Sekarang ketika Anda membuka localhost:8787di browser, Anda akan melihat RStudio.

Sharon Machlis,

Nama pengguna dan kata sandi default keduanya rstudio, yang tentu saja akan sangat buruk jika Anda menjalankan ini di cloud. Tapi saya pikir baik itu di mesin lokal saya, karena saya tidak biasanya memiliki setiap sandi pada desktop RStudio biasa saya.

Jika Anda memeriksa versi R di R / RStudio dalam container, Anda akan melihat versi 4.0. RStudio seharusnya versi 1.3.947, rilis pratinjau terbaru pada saat artikel ini pertama kali diterbitkan. Keduanya adalah versi yang berbeda dari yang diinstal di mesin lokal saya.

Tiga fitur R 4.0 baru

Jadi sekarang mari kita lihat beberapa fitur baru R 4.0. 

StringsAsFactors default baru

Pada kode di bawah ini, saya membuat bingkai data sederhana dengan info tentang empat kota dan kemudian memeriksa strukturnya.

Kota <- c ("New York", "San Francisco", "Boston", "Seattle") State <- c ("NY", "CA", "MA", "Seattle") PopDensity <- c (26403 , 18838, 13841, 7962) densitas <- data.frame (Kota, Negara Bagian, PopDensity) str (densitas) 'data.frame': 4 obs. dari 3 variabel: $ Kota: chr "New York" "San Francisco" "Boston" "Seattle" $ Negara Bagian: chr "NY" "CA" "MA" "Seattle" $ PopDensity: num 26403 18838 13841 7962

Melihat sesuatu yang tidak terduga? Kota dan Negara Bagian adalah string karakter, meskipun saya tidak menentukan stringsAsFactors = FALSE.Ya, akhirnya, default R data.frame adalah stringsAsFactors = FALSE. Jika saya menjalankan kode yang sama di versi R yang lebih lama, Kota dan Negara Bagian akan menjadi faktor.

Palet warna dan fungsi baru

Berikutnya, melihat let di sebuah baru built-in fungsi dalam R 4.0: palette.pals(). Ini menunjukkan beberapa palet warna bawaan.

 palette.pals () [1] "R3" "R4" "ggplot2" "Okabe-Ito" [5] "Accent" "Dark 2" "Paired" "Pastel 1" [9] "Pastel 2" "Set 1" "Set 2" "Set 3" [13] "Tableau 10" "Tableau Klasik" "Polikrom 36" "Alfabet" 

Fungsi baru lainnya palette.colors(),, memberikan info tentang palet bawaan.

 palette.colors (palette = "Tableau 10") biru oranye merah lightteal hijau kuning ungu "# 4E79A7" "# F28E2B" "# E15759" "# 76B7B2" "# 59A14F" "# EDC948" "# B07AA1" pink brown lightgray " # FF9DA7 "" # 9C755F "" # BAB0AC " 

Jika Anda kemudian menjalankan fungsi paket timbangan show_col()pada hasil, Anda mendapatkan tampilan warna yang bagus dari palet.

skala :: show_col (palette.colors (palette = "Tableau 10"))

Sharon Machlis,

Saya membuat fungsi kecil yang menggabungkan keduanya yang dapat berguna untuk melihat beberapa palet bawaan dalam satu baris kode:

display_built_in_palette <- function (my_palette) {

skala :: show_col (palette.colors (palette = my_palette))

}

display_built_in_palette ("Okabe-Ito")

Sharon Machlis,

None of this code works in earlier versions of R, since only scales::show_col() is available before R 4.0.

Escaping characters within strings

Finally, let’s look at a new function that makes it easier to include characters that usually need to be escaped in strings. 

The syntax is r"(my string here)". Here is one example:

string1 <- r"("I no longer need to escape these " double quotes inside a quote," they said.)"

That string includes an un-escaped quotation mark inside a pair of double quotes. If I display that string, I get this:

 > cat(string1) "I no longer need to escape these " double quotes inside a quote," they said. 

I can also print a literal \n inside the new function.

 string2 <- r"(Here is a backslash n \n)" cat(string2) Here is a backslash n \n 

Tanpa r"()"fungsi khusus , yang \ndibaca sebagai pemisah baris dan tidak ditampilkan.

 string3 <- "Ini garis miring terbalik n \ n" cat (string3) Ini garis miring terbalik n 

Sebelum ini di basis R, Anda harus melarikan diri dari garis miring terbalik dengan garis miring terbalik kedua. 

 string4 <- "Usual escape \\ n" cat (string4) Meloloskan diri biasa \ n 

Itu bukan masalah besar dalam contoh ini, tetapi ini bisa menjadi rumit saat Anda mengerjakan sesuatu seperti ekspresi reguler yang kompleks.

Masih banyak lagi yang baru di R 4.0. Anda dapat melihat semua detailnya di situs web proyek R. 

Untuk informasi lebih lanjut tentang penggunaan Docker dengan R, lihat Tutorial R Docker ROpenSci Labs yang singkat tapi sangat baik.

Dan untuk tips R lainnya, buka halaman Do More With R!