GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare R sul sistema Linux RHEL 8 / CentOS 8

Questo articolo spiega come installare e configurare R in RHEL 8 / CentOS 8.

In questo tutorial imparerai:

  • Panoramica R
  • Caratteristiche statistiche di R
  • Download, compilazione, installazione di R
  • Hello World con R

Caratteristiche R.

Requisiti e convenzioni software utilizzati

Requisiti software e convenzioni della riga di comando Linux
Categoria Requisiti, convenzioni o versione del software utilizzata
Sistema RHEL 8 / CentOS 8
Software R
Altro Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando.
Convenzioni # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando
$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato

Panoramica R

R è un linguaggio di programmazione e un ambiente software gratuito per il calcolo statistico e la grafica supportati dalla R Foundation for Statistical Computing. Il linguaggio R è ampiamente utilizzato tra statistici e data miner per lo sviluppo di software statistico e analisi dei dati. Sondaggi, sondaggi di data mining e studi su database di letteratura accademica mostrano un aumento sostanziale della popolarità negli ultimi anni a partire da febbraio 2019, R è al 15° posto nell'indice TIOBE, una misura della popolarità dei linguaggi di programmazione.

Un pacchetto GNU, codice sorgente per l'ambiente software R è scritto principalmente in C, Fortran e R stesso, ed è disponibile gratuitamente sotto la GNU General Public License. Versioni binarie precompilate sono fornite per vari sistemi operativi. Sebbene R abbia un'interfaccia a riga di comando, esistono diverse interfacce utente grafiche, come RStudio, un ambiente di sviluppo integrato.

Caratteristiche statistiche di R

R e le sue librerie implementano un'ampia varietà di tecniche statistiche e grafiche, tra cui modellazione lineare e non lineare, test statistici classici, analisi di serie temporali, classificazione, clustering e altro. R è facilmente estensibile tramite funzioni ed estensioni e la comunità R è nota per i suoi contributi attivi in ​​termini di pacchetti. Molte delle funzioni standard di R sono scritte in R stessa, il che rende facile per gli utenti seguire le scelte algoritmiche effettuate. Per attività ad alta intensità di calcolo, il codice C, C++ e Fortran può essere collegato e chiamato in fase di esecuzione. Gli utenti avanzati possono scrivere codice C, C++, Java, .NET o Python per manipolare direttamente gli oggetti R. R è altamente estensibile attraverso l'uso di pacchetti inviati dall'utente per funzioni specifiche o aree di studio specifiche. Grazie alla sua eredità S, R ha strutture di programmazione orientate agli oggetti più potenti rispetto alla maggior parte dei linguaggi di calcolo statistico. L'estensione di R è facilitata anche dalle sue regole di ambito lessicale.

Un altro punto di forza di R è la grafica statica, che può produrre grafici di qualità da pubblicazione, inclusi simboli matematici. La grafica dinamica e interattiva è disponibile tramite pacchetti aggiuntivi.

R ha Rd, il proprio formato di documentazione simile a LaTeX, che viene utilizzato per fornire una documentazione completa, sia online in numerosi formati che su carta.

Download, compilazione, installazione di R

Fonti, binari e documentazione per R possono essere ottenuti tramite CRAN, la "Comprehensive R Archive Network". Apri il link https://cran.r-project.org/mirrors.html e seleziona uno qualsiasi dei mirror per scaricare R. Qui abbiamo usato il mirror dell'Università della California, Berkeley ovvero https://cran.cnr.berkeley .edu/ per scaricare R. Una volta scaricato il file R-3.5.2.tar.gz (The latest release (2018-12-20, Eggshell Igloo) estrarlo e modificare i permessi di root utente.

# 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

Prima di compilare la R dal pacchetto scaricato è necessario installare i seguenti pacchetti con i comandi seguenti

# 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-*

Ora, passa alla directory estratta ed esegui i seguenti comandi.

#./configure –with-x=no

Dopo aver eseguito correttamente il comando di configurazione, riceverai il messaggio di seguito

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

Ora esegui i seguenti comandi dalla stessa directory R estratta.

# make

Se questi comandi vengono eseguiti correttamente, il binario R e un front-end di script di shell chiamato R vengono creati e copiati nella directory bin. Puoi copiare lo script in una posizione in cui gli utenti possono invocarlo, ad esempio in /usr/local/bin . Inoltre, vengono create pagine di aiuto in testo semplice e versioni HTML e LaTeX della documentazione.

Infine, usa make check per scoprire se il tuo sistema R funziona correttamente.

# 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'

Per eseguire un'installazione "a livello di sistema", utilizzare make install.

# make install

Per impostazione predefinita, verrà installato nelle seguenti directory:

${prefix}/bin – lo script della shell front-end
${prefix}/man/man1 – la pagina man
${prefix}/lib/R – tutto il resto (biblioteche, guida in linea, …). Questa è la “R Home Directory” (R_HOME) del sistema installato.

In quanto sopra, il prefisso viene determinato durante la configurazione (in genere /usr/local ) e può essere impostato eseguendo configure con l'opzione.

#./configure --prefix=/where/you/want/R/to/go

(Ad esempio, l'eseguibile R verrà quindi installato in /where/you/want/R/to/go/bin.)

Una volta completata l'installazione, la R può essere invocata dal seguente comando.

# 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.

Hello World con R

Per verificare se la R funziona correttamente, creiamo un semplice programma Hello World R da verificare. Crea un nuovo codice R usando vim e salva con l'estensione *.R.


hello <- function( name ) {

    sprintf( "Hello, %s", name );

}

Lo script R viene eseguito utilizzando il comando sorgente. Vai al prompt dei comandi nella console R e scrivi il seguente comando per eseguire lo script.

> source("/root/helloworld.R")

> hello("LinuxConfig.org")
[1] "Hello, LinuxConfig.org"
>

Conclusione

R è gratuito e open source, consentendo a chiunque di accedere a strumenti di analisi statistica di livello mondiale. È ampiamente utilizzato nel mondo accademico e nel settore privato ed è oggi il linguaggio di programmazione di analisi statistica più popolare. Imparare R non è facile:se lo fosse, i data scientist non sarebbero così richiesti. Tuttavia, non mancano risorse di qualità che puoi utilizzare per imparare R se sei disposto a dedicare tempo e fatica.


Cent OS
  1. Come installare e configurare la finestra mobile in Rocky Linux/Centos 8

  2. Come installare e configurare Ansible su Rocky Linux/CentOS 8

  3. Come installare e configurare Mono su Rocky Linux 8 e CentOS 8

  4. CentOS / RHEL 7 :Come installare e configurare telnet

  5. Come installare e configurare Samba in CentOS/RHEL

Come installare e configurare MongoDB su CentOS 8

Come installare e configurare Denyhost in Centos 7 Linux

Come installare e configurare il server VNC in CentOS 7 / RHEL 7

Come installare e configurare Jenkins su CentOS 8 / RHEL 8

Come installare e configurare MariaDB in CentOS / RHEL 7

Come installare e configurare il server VNC su CentOS/RHEL 8