Linux下R環境安裝


R環境的兩種安裝方式,源碼編譯安裝和yum在線安裝

第一種:源碼編譯安裝

1.首先,從官網上下載3.5.0版本

2.下載完后記得解壓,我的習慣是解壓在/usr/local下面

tar -zxvf R-3.5.0.tar.gz

3.然后,安裝各種依賴環境

yum install -y gcc

yum install -y glibc-headers

yum install -y libreadline6-dev gfortran

yum install -y readline-devel

yum install -y wget libXt-devel

yum install -y fonts-chinese tcl tcl-devel tclx tk tk-devel

yum install -y mesa-libGLU mesa-libGLU-devel

yum install -y install bzip2-devel

yum install -y install xz-devel.x86_64

yum install -y install pcre-devel

yum install -y install libcurl

yum install -y install libcurl-devel

yum install -y  texinfo.x86_64

yum install -y texlive-pdftex-doc.noarch

yum install -y texlive

yum install gcc-gfortran

4.安裝完依賴環境后,准備建立編譯后的文件夾R 
    我習慣建立在usr中

mkdir /usr/local/R

5.接下來,進入R中,准備進行安裝了。該R的安裝是通過configure進行安裝

cd /usr/local/R-3.5.0

./configure --enable-R-shlib=yes --with-tcltk --prefix=/usr/local/R

6.環境配置完畢后,可以進行make和安裝了

make

make install

配置I5的話 大概是15到20分鍾。

7.編譯安裝完畢后,進行環境配置

vim /etc/profile

R_HOME=/usr/local/R

PATH=$PATH:$R_HOME/bin

source /etc/profile

 

 

8.然后直接輸入R回車就能進入R的控制台了

[root@siger-node2 local]# R

 

 

R下載安裝
https://mirrors.tuna.tsinghua.edu.cn/CRAN/

RStudio下載安裝
https://www.rstudio.com/products/rstudio/download/#download 

第二種:yum在線安裝

1.通過如下命令安裝並啟用 EPEL (如果已經安裝過,直接執行第二步)

yum install epel-release

2.使用如下命令安裝R

yum install R

3.安裝完成之后,直接在終端輸入R然后回車之后出現類似如下內容則表示安裝成功

[root@siger-node1 local]# R

 

 

一, R語言所處理的工作層:

Image[12]

     解釋一下:

            最下面的一層為數據源,往上是數據倉庫層,往上是數據探索層,包括統計分析,統計查詢,還有就是報告

           再往上的三層,分別是數據挖掘,數據展現和數據決策。

    由上圖可知,R語言是可以用於數據挖掘,數據展現,而后領導根據展現的數據來決策,R語言在數據展現的方面,擁有很強大的功能。

 

二,R語言的數據結構:

 

       包括如下的幾項:包括向量,矩陣,數組,數據框,列表和因子

 

ScreenClip

1,向量:

         創建向量的方法一共有三種,分別如下:

         第一種,使用c()的這個方法:

     由於博客中木有R語言代碼的選項,所以,下面選擇截圖:

 

ScreenClip(1)

 

       解釋一下,就是創建x1向量,x2向量,然后分別使用length()和mode()函數,獲得向量的長度和向量的類型,上面顯示的向量的類型是numeric,即為數字類型。

       然后,分別使用rbind(x1,x2)和cbind(x1,x2)兩個方法分別對兩個向量進行行組合和列組合。

           那么向量是否可以為別的類型呢?答案很顯然是可以的,如下所示,向量中只要含有字符串,那么這個向量就是字符類型的。

 

ScreenClip(2)

             

         第二種創建向量的方法,及向量的截取:

 

Image(1)

 

      由上面的代碼可知,不寫c的情況下,可以直接使用“:”來完成向量的創建,而切在常見的同時,根據加減乘來決定所創建向量的具體的形式

    向量中元素的選取和那啥別的語言中的數組的方法是相同的,不同的是,他可以加上一個負號進行選取,而后選取的結果就是去掉這個元素之后的其他的元素

    這種方法不單單適用於單個元素,依舊適用於多個元素,多個元素的時候使用“:”來完成。

      第三種創建向量的方式:

 

Image(2)

 

      這種創建方式,長的和第一種方法有點相同,其效果和第二個方法的效果又有點相似,其中by其表示等差,,length表示的是個數,根據個數來判斷方差到底是多少

      這三種創建向量方法的總結對比,似乎會得到一個結論:

           第一種,適合於創建有限個少量的元素的向量

           第二種,適合於創建大量元素,但是這些元素之間關系不是那么強烈的向量

           第三種,適合創建擁有等差性質的向量

 

      下面的時候,還有一個創建向量的方法。。。。。

 

 

      最后還有一個向量,是R語言之中內置的常向量,用來表示a,b,c,d...z等26個字母

 

Image(3)

2,使用特定的函數,對向量進行操作

 

Image(4)

    這里包括了which函數,其中which.max()和which.min()分別用來取向量中的最大值和最小值的下標,注意是下標,不是對應的值

   還可以用來去特定范圍和特定值的下標

     而后便是rev()函數和sort()函數,分別用來進行反轉和排序

 

2,矩陣

       不同於創建向量的方法,矩陣的創建方法只有一種,且是在向量的基礎上,對向量進行按列和按行進行排序得到的結果。

Image(5)

       由上面可知,前面有關三個創建向量的方法是有誤的,c()方法很顯然也可以用來創建大量的元素的向量

        用matrix方法對向量進行組合的時候,默認是安裝列來進行書序的組合,比如第一個,矩陣,按照列,第一個列是1,2,3,第二列才是4,5,6所以就是明顯的按列進行,

如果改為用byrow=T,則改為按行來排列

3,數組

 

Image(6)

4, 數據框

 

         數據框的構建也只有一種方法,他的也是有向量組合而成,由此可以見得,向量是R語言最根本對的數據結構,如果沒有向量,一切都是不行的。

        同時不同於矩陣,他的每一個列可以和其他的列是不同的類型

 

 

Image(7)

5,factor

 

 

         下圖所示,iris是R語言內置的數據框,如果使用facotor就可以選擇其中的一列

 

Image(8)

Image(9)

     如上圖所指示,就是去的列的值了,字面的上的意思就是取得影響因子,如果吧每一個當一個事物的特征值的話

 

6,列表

          所謂列表,可以看成是有序個元素的集合,他存進去的順序很顯然是和取出來的書序是相等的。

 

Image(10)

 

 

三,R語言計算相關的函數:

 

        普通運算:

 

Image(11)

        由上圖所示,mean()是求平均值,sum()是求和,max( )是求最大值,,min()  是求最小值 

 

   


 

 

 

        矩陣運算,

 

      包括加減乘除,求特征值和特征向量等等

Image(12)

 

 

      其加法減法的表示沒有啥特殊的,同時需要注意的是,t()是表示轉置,他的功效很大,還可以吧轉化為矩陣,如下圖所示:

 

 

Image(13)

 

       就完成了到行矩陣的轉換,同時也完成了行矩陣到列矩陣的轉換

 

 

Image(14)

     矩陣的乘法,就是%*%   ,純粹的*只是矩陣的元素相乘。。

 

     diag()函數,可以根據矩陣獲得列表對象線上的元素,當然還可以根據對角線上的元素,來創建一個矩陣

 

    同時可以用來構建單位陣

 

    如下計算,rnorm是去的隨機數,solve()函數是用求得矩陣a的逆矩陣,即為矩陣的除法

 

Image(15)

 

     如下圖所示,solve函數依舊可以用來解方程組:

 

Image(16)

 

  如下圖所示,   eigen函數就是用來取得一個矩陣的特征向量和特征值,同時可以使用$來取出

 

 

Image(17)

四,R的語句:

 

for語句:

      不同於別的語法,for循環之中,沒有必要初始化值,a或者b有一個初始化的值

 

Image(18)

while 循環語句:

    不同於上面的,a需要有初始的值,也還要控制i的加減

 

ScreenClip(3)

 

 

五,一些其他的特殊的函數:

 

   注意在,文本中,如果想加載這個文件打印,就需要在文本的代碼之中,使用print()函數。。。

Image(19)

Image(20)

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM