Artikel ini menjelaskan cara menginstal dan mengkonfigurasi R di RHEL 8 / CentOS 8.
Dalam tutorial ini Anda akan mempelajari:
- Ringkasan R
- Fitur Statistik R
- Download, Kompilasi, Instalasi R
- Halo Dunia dengan R
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | RHEL 8 / CentOS 8 |
Perangkat Lunak | R |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah. |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Ringkasan R
R adalah bahasa pemrograman dan lingkungan perangkat lunak bebas untuk komputasi statistik dan grafik yang didukung oleh R Foundation for Statistical Computing. Bahasa R banyak digunakan di antara ahli statistik dan penambang data untuk mengembangkan perangkat lunak statistik dan analisis data. Jajak pendapat, survei penambangan data, dan studi database literatur ilmiah menunjukkan peningkatan substansial dalam popularitas dalam beberapa tahun terakhir pada Februari 2019, R menempati peringkat ke-15 dalam indeks TIOBE, ukuran popularitas bahasa pemrograman.
Paket GNU, kode sumber untuk lingkungan perangkat lunak R ditulis terutama dalam C, Fortran dan R itu sendiri, dan tersedia secara bebas di bawah Lisensi Publik Umum GNU. Versi biner pra-kompilasi disediakan untuk berbagai sistem operasi. Meskipun R memiliki antarmuka baris perintah, ada beberapa antarmuka pengguna grafis, seperti RStudio, lingkungan pengembangan terintegrasi.
Fitur Statistik R
R dan perpustakaannya menerapkan berbagai teknik statistik dan grafis, termasuk pemodelan linier dan nonlinier, uji statistik klasik, analisis deret waktu, klasifikasi, pengelompokan, dan lain-lain. R mudah diperluas melalui fungsi dan ekstensi, dan komunitas R terkenal karena kontribusi aktifnya dalam hal paket. Banyak fungsi standar R ditulis dalam R itu sendiri, yang memudahkan pengguna untuk mengikuti pilihan algoritmik yang dibuat. Untuk tugas komputasi intensif, kode C, C++, dan Fortran dapat dihubungkan dan dipanggil pada saat run time. Pengguna tingkat lanjut dapat menulis kode C, C++, Java, .NET atau Python untuk memanipulasi objek R secara langsung. R sangat dapat diperluas melalui penggunaan paket yang dikirimkan pengguna untuk fungsi tertentu atau bidang studi tertentu. Karena warisan S-nya, R memiliki fasilitas pemrograman berorientasi objek yang lebih kuat daripada kebanyakan bahasa komputasi statistik. Memperluas R juga dipermudah dengan aturan pelingkupan leksikalnya.
Kekuatan lain dari R adalah grafik statis, yang dapat menghasilkan grafik berkualitas publikasi, termasuk simbol matematika. Grafik dinamis dan interaktif tersedia melalui paket tambahan.
R memiliki Rd, format dokumentasinya sendiri yang mirip dengan LaTeX, yang digunakan untuk menyediakan dokumentasi yang komprehensif, baik online dalam beberapa format maupun dalam bentuk hard copy.
Download, Kompilasi, Instalasi R
Sumber, binari, dan dokumentasi untuk R dapat diperoleh melalui CRAN, "Jaringan Arsip R Komprehensif". Buka tautan https://cran.r-project.org/mirrors.html dan pilih salah satu mirror untuk mengunduh R. Di sini kami telah menggunakan mirror dari University of California, Berkeley yaitu https://cran.cnr.berkeley .edu/ untuk mengunduh R. Setelah mengunduh file R-3.5.2.tar.gz (Rilis terbaru (2018-12-20, Eggshell Igloo) file ekstrak dan ubah izin ke pengguna root.
# tar -xzvf R-3.5.2.tar.gz # ls -lrth total 29M drwxr-xr-x. 10 501 games 4.0K Dec 20 12:04 R-3.5.2 -rw-------. 1 root root 1.2K Feb 3 22:58 anaconda-ks.cfg
# chown -R root:root R-3.5.2/ # ls -lrth total 29M drwxr-xr-x. 10 root root 4.0K Dec 20 12:04 R-3.5.2 -rw-------. 1 root root 1.2K Feb 3 22:58 anaconda-ks.cfg
Sebelum mengkompilasi R dari paket yang diunduh, Anda perlu menginstal paket-paket berikut dengan perintah di bawah ini
# yum group install "Development tools" # yum install readline-devel # yum install xz xz-devel # yum install pcre pcre-devel # yum install libcurl-devel # yum install texlive # yum install java-1.8.0-openjdk # yum install *gfortran* # yum install zlib* # yum install bzip2-*
Sekarang, ubah ke direktori yang diekstrak dan jalankan perintah berikut.
#./configure –with-x=no
Setelah perintah konfigurasi berhasil, Anda akan mendapatkan pesan di bawah ini
R is now configured for x86_64-pc-linux-gnu Source directory: . Installation directory: /usr/local C compiler: gcc -g -O2 Fortran 77 compiler: f95 -g -O2 Default C++ compiler: g++ -g -O2 C++98 compiler: g++ -std=gnu++98 -g -O2 C++11 compiler: g++ -std=gnu++11 -g -O2 C++14 compiler: g++ -std=gnu++14 -g -O2 C++17 compiler: g++ -std=gnu++17 -g -O2 Fortran 90/95 compiler: gfortran -g -O2 Obj-C compiler: Interfaces supported: External libraries: readline, curl Additional capabilities: NLS Options enabled: shared BLAS, R profiling Capabilities skipped: PNG, JPEG, TIFF, cairo, ICU Options not enabled: memory profiling Recommended packages: yes
Sekarang jalankan perintah di bawah ini dari direktori R yang sama yang diekstraksi.
# make
Jika perintah ini berhasil dijalankan, biner R dan skrip shell front-end yang disebut R dibuat dan disalin ke direktori bin. Anda dapat menyalin skrip ke tempat pengguna dapat memintanya, misalnya ke /usr/local/bin
. Selain itu, halaman bantuan teks biasa serta versi HTML dan LaTeX dari dokumentasi dibuat.
Terakhir, gunakan make check
untuk mengetahui apakah sistem R Anda berfungsi dengan benar.
# make check make[1]: Entering directory '/root/R-3.5.2/tests' make[2]: Entering directory '/root/R-3.5.2/tests' make[3]: Entering directory '/root/R-3.5.2/tests/Examples' Testing examples for package ‘base’ Testing examples for package ‘tools’ comparing ‘tools-Ex.Rout’ to ‘tools-Ex.Rout.save’ ... OK Testing examples for package ‘utils’ Testing examples for package ‘grDevices’ comparing ‘grDevices-Ex.Rout’ to ‘grDevices-Ex.Rout.save’ ... OK Testing examples for package ‘graphics’ comparing ‘graphics-Ex.Rout’ to ‘graphics-Ex.Rout.save’ ... OK Testing examples for package ‘stats’ comparing ‘stats-Ex.Rout’ to ‘stats-Ex.Rout.save’ ... OK Testing examples for package ‘datasets’ comparing ‘datasets-Ex.Rout’ to ‘datasets-Ex.Rout.save’ ... OK Testing examples for package ‘methods’ Testing examples for package ‘grid’ comparing ‘grid-Ex.Rout’ to ‘grid-Ex.Rout.save’ ... OK Testing examples for package ‘splines’ comparing ‘splines-Ex.Rout’ to ‘splines-Ex.Rout.save’ ... OK Testing examples for package ‘stats4’ comparing ‘stats4-Ex.Rout’ to ‘stats4-Ex.Rout.save’ ... OK Testing examples for package ‘tcltk’ Testing examples for package ‘compiler’ Testing examples for package ‘parallel’ make[3]: Leaving directory '/root/R-3.5.2/tests/Examples' make[2]: Leaving directory '/root/R-3.5.2/tests' make[2]: Entering directory '/root/R-3.5.2/tests' running strict specific tests make[3]: Entering directory '/root/R-3.5.2/tests' running code in 'eval-etc.R' ... OK comparing 'eval-etc.Rout' to './eval-etc.Rout.save' ... OK running code in 'simple-true.R' ... OK comparing 'simple-true.Rout' to './simple-true.Rout.save' ... OK running code in 'arith-true.R' ... OK comparing 'arith-true.Rout' to './arith-true.Rout.save' ... OK running code in 'arith.R' ... OK comparing 'arith.Rout' to './arith.Rout.save' ... OK running code in 'lm-tests.R' ... OK comparing 'lm-tests.Rout' to './lm-tests.Rout.save' ... OK running code in 'ok-errors.R' ... OK comparing 'ok-errors.Rout' to './ok-errors.Rout.save' ... OK running code in 'method-dispatch.R' ... OK comparing 'method-dispatch.Rout' to './method-dispatch.Rout.save' ... OK running code in 'any-all.R' ... OK comparing 'any-all.Rout' to './any-all.Rout.save' ... OK running code in 'd-p-q-r-tests.R' ... OK comparing 'd-p-q-r-tests.Rout' to './d-p-q-r-tests.Rout.save' ... OK make[3]: Leaving directory '/root/R-3.5.2/tests' running sloppy specific tests make[3]: Entering directory '/root/R-3.5.2/tests' running code in 'complex.R' ... OK comparing 'complex.Rout' to './complex.Rout.save' ... OK running code in 'eval-etc-2.R' ... OK comparing 'eval-etc-2.Rout' to './eval-etc-2.Rout.save' ... OK running code in 'print-tests.R' ... OK comparing 'print-tests.Rout' to './print-tests.Rout.save' ... OK running code in 'lapack.R' ... OK comparing 'lapack.Rout' to './lapack.Rout.save' ... OK running code in 'datasets.R' ... OK comparing 'datasets.Rout' to './datasets.Rout.save' ... OK running code in 'datetime.R' ... OK comparing 'datetime.Rout' to './datetime.Rout.save' ... OK running code in 'iec60559.R' ... OK comparing 'iec60559.Rout' to './iec60559.Rout.save' ... OK make[3]: Leaving directory '/root/R-3.5.2/tests' make[3]: Entering directory '/root/R-3.5.2/tests' checking Sys.timezone ... make[4]: Entering directory '/root/R-3.5.2/tests' running code in 'timezone.R' ... OK make[4]: Leaving directory '/root/R-3.5.2/tests' make[3]: Leaving directory '/root/R-3.5.2/tests' make[2]: Leaving directory '/root/R-3.5.2/tests' make[2]: Entering directory '/root/R-3.5.2/tests' running regression tests ... make[3]: Entering directory '/root/R-3.5.2/tests' running code in 'array-subset.R' ... OK running code in 'reg-tests-1a.R' ... OK running code in 'reg-tests-1b.R' ... OK running code in 'reg-tests-1c.R' ... OK running code in 'reg-tests-1d.R' ... OK running code in 'reg-tests-2.R' ... OK comparing 'reg-tests-2.Rout' to './reg-tests-2.Rout.save' ... OK running code in 'reg-examples1.R' ... OK running code in 'reg-examples2.R' ... OK running code in 'reg-packages.R' ... OK running code in 'p-qbeta-strict-tst.R' ... OK running code in 'r-strict-tst.R' ... OK running code in 'reg-IO.R' ... OK comparing 'reg-IO.Rout' to './reg-IO.Rout.save' ... OK running code in 'reg-IO2.R' ... OK comparing 'reg-IO2.Rout' to './reg-IO2.Rout.save' ... OK running code in 'reg-plot.R' ... OK comparing 'reg-plot.pdf' to './reg-plot.pdf.save' ... OK running code in 'reg-S4-examples.R' ... OK running code in 'reg-BLAS.R' ... OK make[3]: Leaving directory '/root/R-3.5.2/tests' make[3]: Entering directory '/root/R-3.5.2/tests' running code in 'reg-tests-3.R' ... OK comparing 'reg-tests-3.Rout' to './reg-tests-3.Rout.save' ... OK running code in 'reg-examples3.R' ... OK comparing 'reg-examples3.Rout' to './reg-examples3.Rout.save' ... OK running tests of plotting Latin-1 expect failure or some differences if not in a Latin-1 or UTF-8 locale running code in 'reg-plot-latin1.R' ... OK comparing 'reg-plot-latin1.pdf' to './reg-plot-latin1.pdf.save' ... OK running code in 'reg-S4.R' ... OK comparing 'reg-S4.Rout' to './reg-S4.Rout.save' ... OK make[3]: Leaving directory '/root/R-3.5.2/tests' make[2]: Leaving directory '/root/R-3.5.2/tests' make[2]: Entering directory '/root/R-3.5.2/tests' running tests of Internet functions make[3]: Entering directory '/root/R-3.5.2/tests' running code in 'internet.R' ... OK comparing 'internet.Rout' to './internet.Rout.save' ... OK make[3]: Leaving directory '/root/R-3.5.2/tests' make[2]: Leaving directory '/root/R-3.5.2/tests' make[1]: Leaving directory '/root/R-3.5.2/tests'
Untuk melakukan penginstalan “seluruh sistem” gunakan make install.
# make install
Secara default, ini akan menginstal ke direktori berikut:
${prefix}/bin
– skrip shell front-end${prefix}/man/man1
– halaman manual${prefix}/lib/R
– sisanya (perpustakaan, sistem bantuan online, …). Ini adalah "R Home Directory" (R_HOME) dari sistem yang diinstal.
Di atas, awalan ditentukan selama konfigurasi (biasanya /usr/local
) dan dapat disetel dengan menjalankan konfigurasikan dengan opsi.
#./configure --prefix=/where/you/want/R/to/go
(Misalnya, R yang dapat dieksekusi kemudian akan diinstal ke /where/you/want/R/to/go/bin.)
Setelah instalasi berhasil, R dapat dipanggil dengan perintah berikut.
# R R version 3.5.2 (2018-12-20) -- "Eggshell Igloo" Copyright (C) 2018 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R.
Halo Dunia dengan R
Untuk memeriksa R apakah itu berfungsi dengan baik, mari buat Program Hello World R sederhana untuk memverifikasi. Buat kode R baru dengan menggunakan vim dan simpan dengan ekstensi *.R.
hello <- function( name ) {
sprintf( "Hello, %s", name );
}
Skrip R dijalankan menggunakan perintah sumber. Buka command prompt di konsol R, dan tulis perintah berikut untuk menjalankan skrip.
> source("/root/helloworld.R") > hello("LinuxConfig.org") [1] "Hello, LinuxConfig.org" >
Kesimpulan
R gratis dan open-source, memungkinkan siapa saja memiliki akses ke alat analisis statistik kelas dunia. Ini digunakan secara luas di dunia akademis dan sektor swasta dan merupakan bahasa pemrograman analisis statistik paling populer saat ini. Mempelajari R tidak mudah — jika demikian, ilmuwan data tidak akan begitu diminati. Namun, tidak ada kekurangan sumber daya berkualitas yang dapat Anda gunakan untuk mempelajari R jika Anda bersedia meluangkan waktu dan tenaga.