GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und konfigurieren Sie R auf einem Linux-System mit RHEL 8 / CentOS 8

Dieser Artikel erläutert die Installation und Konfiguration von R in RHEL 8 / CentOS 8.

In diesem Tutorial lernen Sie:

  • R-Übersicht
  • Statistische Merkmale von R
  • Download, Kompilierung, Installation von R
  • Hallo Welt mit R

R-Funktionen.

Softwareanforderungen und verwendete Konventionen

Softwareanforderungen und Linux-Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder verwendete Softwareversion
System RHEL 8 / CentOS 8
Software R
Andere Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl.
Konventionen # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl
$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden

R-Übersicht

R ist eine Programmiersprache und freie Softwareumgebung für statistische Berechnungen und Grafiken, die von der R Foundation for Statistical Computing unterstützt wird. Die Sprache R wird von Statistikern und Dataminern häufig zur Entwicklung statistischer Software und Datenanalyse verwendet. Umfragen, Data-Mining-Umfragen und Studien von wissenschaftlichen Literaturdatenbanken zeigen einen erheblichen Anstieg der Popularität in den letzten Jahren, seit Februar 2019 belegt R den 15. Platz im TIOBE-Index, ein Maß für die Popularität von Programmiersprachen.

Ein GNU-Paket, Quellcode für die R-Softwareumgebung ist hauptsächlich in C, Fortran und R selbst geschrieben und ist unter der GNU General Public License frei verfügbar. Für verschiedene Betriebssysteme werden vorkompilierte Binärversionen bereitgestellt. Obwohl R über eine Befehlszeilenschnittstelle verfügt, gibt es mehrere grafische Benutzerschnittstellen, wie z. B. RStudio, eine integrierte Entwicklungsumgebung.

Statistische Merkmale von R

R und seine Bibliotheken implementieren eine Vielzahl statistischer und grafischer Techniken, darunter lineare und nichtlineare Modellierung, klassische statistische Tests, Zeitreihenanalyse, Klassifizierung, Clustering und andere. R ist durch Funktionen und Erweiterungen leicht erweiterbar, und die R-Community ist bekannt für ihre aktiven Beiträge in Bezug auf Pakete. Viele der Standardfunktionen von R sind in R selbst geschrieben, was es Benutzern leicht macht, die getroffenen algorithmischen Entscheidungen zu verfolgen. Für rechenintensive Aufgaben kann C-, C++- und Fortran-Code verknüpft und zur Laufzeit aufgerufen werden. Fortgeschrittene Benutzer können C-, C++-, Java-, .NET- oder Python-Code schreiben, um R-Objekte direkt zu manipulieren. R ist durch die Verwendung von vom Benutzer eingereichten Paketen für bestimmte Funktionen oder bestimmte Studienbereiche in hohem Maße erweiterbar. Aufgrund seines S-Erbes verfügt R über stärkere objektorientierte Programmiermöglichkeiten als die meisten statistischen Rechensprachen. Das Erweitern von R wird auch durch seine lexikalischen Scoping-Regeln erleichtert.

Eine weitere Stärke von R sind statische Grafiken, die Diagramme in Veröffentlichungsqualität erzeugen können, einschließlich mathematischer Symbole. Dynamische und interaktive Grafiken sind über zusätzliche Pakete verfügbar.

R hat Rd, sein eigenes LaTeX-ähnliches Dokumentationsformat, das verwendet wird, um umfassende Dokumentation bereitzustellen, sowohl online in einer Reihe von Formaten als auch in Papierform.

Download, Kompilierung, Installation von R

Quellen, Binärdateien und Dokumentation für R können über CRAN, das „Comprehensive R Archive Network“, bezogen werden. Öffnen Sie den Link https://cran.r-project.org/mirrors.html und wählen Sie einen der Mirrors aus, um R herunterzuladen. Hier haben wir den Mirror der University of California, Berkeley, verwendet, d. h. https://cran.cnr.berkeley .edu/, um R herunterzuladen. Nachdem Sie die R-3.5.2.tar.gz-Datei (die neueste Version (2018-12-20, Eggshell Igloo) heruntergeladen haben, extrahieren Sie sie und ändern Sie die Berechtigung für den Root-Benutzer.

# 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

Bevor Sie das R aus dem heruntergeladenen Paket kompilieren, müssen Sie die folgenden Pakete mit den folgenden Befehlen installieren

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

Wechseln Sie nun in das extrahierte Verzeichnis und führen Sie die folgenden Befehle aus.

#./configure –with-x=no

Nach erfolgreichem Konfigurationsbefehl erhalten Sie die folgende Meldung

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

Führen Sie nun die folgenden Befehle aus demselben extrahierten R-Verzeichnis aus.

# make

Wenn diese Befehle erfolgreich ausgeführt werden, werden die R-Binärdatei und ein Shell-Skript-Front-End namens R erstellt und in das bin-Verzeichnis kopiert. Sie können das Skript an einen Ort kopieren, an dem Benutzer es aufrufen können, beispielsweise nach /usr/local/bin . Außerdem werden Klartext-Hilfeseiten sowie HTML- und LaTeX-Versionen der Dokumentation erstellt.

Verwenden Sie schließlich make check um herauszufinden, ob Ihr R-System korrekt funktioniert.

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

Um eine „systemweite“ Installation durchzuführen, verwenden Sie make install.

# make install

Standardmäßig wird dies in den folgenden Verzeichnissen installiert:

${prefix}/bin – das Frontend-Shell-Skript
${prefix}/man/man1 – die Manpage
${prefix}/lib/R – alles andere (Bibliotheken, Online-Hilfesystem, …). Dies ist das „R Home Directory“ (R_HOME) des installierten Systems.

Oben wird das Präfix während der Konfiguration bestimmt (normalerweise /usr/local ) und kann durch Ausführen von configure mit der Option.

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

(Beispielsweise wird die ausführbare R-Datei dann in /where/you/want/R/to/go/bin installiert.)

Nach erfolgreicher Installation kann R mit dem folgenden Befehl aufgerufen werden.

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

Hallo Welt mit R

Um zu überprüfen, ob R richtig funktioniert, erstellen wir ein einfaches Hello World R-Programm zur Überprüfung. Erstellen Sie einen neuen R-Code mit vim und speichern Sie ihn mit der Erweiterung *.R.


hello <- function( name ) {

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

}

Das R-Skript wird mit dem Quellbefehl ausgeführt. Gehen Sie zur Eingabeaufforderung in der R-Konsole und schreiben Sie den folgenden Befehl, um das Skript auszuführen.

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

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

Schlussfolgerung

R ist kostenlos und quelloffen, sodass jeder Zugriff auf erstklassige statistische Analysetools hat. Es wird in der Wissenschaft und im Privatsektor weit verbreitet und ist heute die beliebteste Programmiersprache für statistische Analysen. Das Erlernen von R ist nicht einfach – wenn es so wäre, wären Data Scientists nicht so gefragt. Es gibt jedoch keinen Mangel an hochwertigen Ressourcen, die Sie zum Erlernen von R verwenden können, wenn Sie bereit sind, Zeit und Mühe zu investieren.


Cent OS
  1. So installieren und konfigurieren Sie Docker in Rocky Linux/Centos 8

  2. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  3. So installieren und konfigurieren Sie Mono unter Rocky Linux 8 und CentOS 8

  4. CentOS / RHEL 7 :So installieren und konfigurieren Sie Telnet

  5. So installieren und konfigurieren Sie Samba in CentOS / RHEL

So installieren und konfigurieren Sie MongoDB unter CentOS 8

So installieren und konfigurieren Sie Denyhost in Centos 7 Linux

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren und konfigurieren Sie MariaDB in CentOS / RHEL 7

So installieren und konfigurieren Sie VNC Server unter CentOS/RHEL 8