GNU/Linux >> Linux の 問題 >  >> Cent OS

RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

この記事では、RHEL 8 /CentOS8にRをインストールして構成する方法について説明します。

このチュートリアルでは、次のことを学びます。

  • Rの概要
  • Rの統計的特徴
  • Rのダウンロード、コンパイル、インストール
  • Hello World with R

<中央>

R機能。

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
RHEL 8 / CentOS 8
R
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
–指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

Rの概要

Rは、R Foundation forStatisticsComputingによってサポートされている統計計算およびグラフィックス用のプログラミング言語およびフリーソフトウェア環境です。 R言語は、統計ソフトウェアやデータ分析を開発するために、統計家やデータマイニング担当者の間で広く使用されています。世論調査、データマイニング調査、および学術文献データベースの調査では、2019年2月の時点で、近年人気が大幅に高まっていることが示されています。Rは、プログラミング言語の人気の指標であるTIOBEインデックスで15位にランクされています。

GNUパッケージ、Rソフトウェア環境のソースコードは、主にC、Fortran、およびR自体で記述されており、GNU GeneralPublicLicenseの下で無料で入手できます。コンパイル済みのバイナリバージョンは、さまざまなオペレーティングシステム用に提供されています。 Rにはコマンドラインインターフェイスがありますが、統合開発環境であるRStudioなど、いくつかのグラフィカルユーザーインターフェイスがあります。

Rの統計的特徴

Rとそのライブラリは、線形および非線形モデリング、古典的な統計的検定、時系列分析、分類、クラスタリングなど、さまざまな統計的およびグラフィカルな手法を実装しています。 Rは機能や拡張機能を通じて簡単に拡張でき、Rコミュニティはパッケージの面で積極的に貢献していることで知られています。 Rの標準関数の多くは、R自体で記述されているため、ユーザーはアルゴリズムの選択を簡単にたどることができます。計算量の多いタスクの場合、C、C ++、およびFortranコードをリンクして、実行時に呼び出すことができます。上級ユーザーは、C、C ++、Java、.NET、またはPythonコードを記述して、Rオブジェクトを直接操作できます。 Rは、特定の機能または特定の研究分野にユーザーが提出したパッケージを使用することにより、高度に拡張可能です。そのSの伝統により、Rはほとんどの統計計算言語よりも強力なオブジェクト指向プログラミング機能を備えています。 Rの拡張は、字句スコープ規則によっても容易になります。

Rのもう1つの強みは、静的グラフィックスです。これにより、数学記号を含む出版品質のグラフを作成できます。ダイナミックでインタラクティブなグラフィックスは、追加のパッケージを通じて利用できます。

Rには独自のLaTeXのようなドキュメント形式であるRdがあり、さまざまな形式のオンラインとハードコピーの両方で包括的なドキュメントを提供するために使用されます。

Rのダウンロード、コンパイル、インストール

Rのソース、バイナリ、およびドキュメントは、「包括的なRアーカイブネットワーク」であるCRANを介して入手できます。リンクhttps://cran.r-project.org/mirrors.htmlを開き、ミラーのいずれかを選択してRをダウンロードします。ここでは、カリフォルニア大学バークレー校のミラー、つまりhttps://cran.cnr.berkeleyを使用しました。 .edu /でRをダウンロードします。R-3.5.2.tar.gz(最新リリース(2018-12-20、Eggshell Igloo)ファイルをダウンロードしたら、それを抽出して、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

ダウンロードしたパッケージからRをコンパイルする前に、以下のコマンドを使用して次のパッケージをインストールする必要があります

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

次に、抽出したディレクトリに移動して、次のコマンドを発行します。

#./configure –with-x=no

configureコマンドが成功すると、以下のメッセージが表示されます

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

次に、同じ抽出されたRディレクトリから以下のコマンドを実行します。

# make

これらのコマンドが正常に実行されると、RバイナリとRと呼ばれるシェルスクリプトフロントエンドが作成され、binディレクトリにコピーされます。スクリプトを、ユーザーが呼び出すことができる場所、たとえば/usr/local/binにコピーできます。 。さらに、プレーンテキストのヘルプページと、HTMLおよびLaTeXバージョンのドキュメントが作成されます。

最後に、make checkを使用します Rシステムが正しく機能しているかどうかを確認します。

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

「システム全体」のインストールを実行するには、make install.を使用します。

# make install

デフォルトでは、これは次のディレクトリにインストールされます:

${prefix}/bin –フロントエンドシェルスクリプト
${prefix}/man/man1 –マニュアルページ
${prefix}/lib/R –残りすべて(ライブラリ、オンラインヘルプシステムなど)。これは、インストールされているシステムの「Rホームディレクトリ」(R_HOME)です。

上記では、プレフィックスは構成中に決定されます(通常は/usr/local )、オプションを指定してconfigureを実行することで設定できます。

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

(たとえば、R実行可能ファイルは/ where / you / want / R / to / go / binにインストールされます。)

インストールが正常に完了すると、次のコマンドでRを呼び出すことができます。

# 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 with R

Rが正しく機能しているかどうかを確認するには、簡単なHelloWorldRプログラムを作成して確認します。 vimを使用して新しいRコードを作成し、*。R拡張子を付けて保存します。


hello <- function( name ) {

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

}

Rスクリプトは、sourceコマンドを使用して実行されます。 Rコンソールのコマンドプロンプトに移動し、次のコマンドを記述してスクリプトを実行します。

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

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

結論

Rは無料でオープンソースであるため、誰でも世界クラスの統計分析ツールにアクセスできます。学界や民間セクターで広く使用されており、今日最も人気のある統計分析プログラミング言語です。 Rを学ぶのは簡単ではありません。もしそうなら、データサイエンティストはそれほど需要が高くないでしょう。ただし、時間と労力を費やすことをいとわないのであれば、Rを学ぶために使用できる質の高いリソースに不足はありません。


Cent OS
  1. Rocky Linux /Centos8でdockerをインストールして構成する方法

  2. Rocky Linux /CentOS8にAnsibleをインストールして構成する方法

  3. RockyLinux8およびCentOS8にMonoをインストールして構成する方法

  1. RHEL 8 / CentOS8LinuxにHAProxyをインストールして構成する

  2. CentOS / RHEL 7 :telnet をインストールして構成する方法

  3. CentOS / RHEL に Samba をインストールして構成する方法

  1. RHEL 8 /CentOS8にsambaをインストールして設定する方法

  2. CentOS 7 /RHEL7にoVirt4.0をインストールして構成する方法

  3. CentOS7およびRHEL7にJenkinsをインストールして構成する方法