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語言所處理的工作層:
解釋一下:
最下面的一層為數據源,往上是數據倉庫層,往上是數據探索層,包括統計分析,統計查詢,還有就是報告
再往上的三層,分別是數據挖掘,數據展現和數據決策。
由上圖可知,R語言是可以用於數據挖掘,數據展現,而后領導根據展現的數據來決策,R語言在數據展現的方面,擁有很強大的功能。
二,R語言的數據結構:
包括如下的幾項:包括向量,矩陣,數組,數據框,列表和因子
1,向量:
創建向量的方法一共有三種,分別如下:
第一種,使用c()的這個方法:
由於博客中木有R語言代碼的選項,所以,下面選擇截圖:
解釋一下,就是創建x1向量,x2向量,然后分別使用length()和mode()函數,獲得向量的長度和向量的類型,上面顯示的向量的類型是numeric,即為數字類型。
然后,分別使用rbind(x1,x2)和cbind(x1,x2)兩個方法分別對兩個向量進行行組合和列組合。
那么向量是否可以為別的類型呢?答案很顯然是可以的,如下所示,向量中只要含有字符串,那么這個向量就是字符類型的。
第二種創建向量的方法,及向量的截取:
由上面的代碼可知,不寫c的情況下,可以直接使用“:”來完成向量的創建,而切在常見的同時,根據加減乘來決定所創建向量的具體的形式
向量中元素的選取和那啥別的語言中的數組的方法是相同的,不同的是,他可以加上一個負號進行選取,而后選取的結果就是去掉這個元素之后的其他的元素
這種方法不單單適用於單個元素,依舊適用於多個元素,多個元素的時候使用“:”來完成。
第三種創建向量的方式:
這種創建方式,長的和第一種方法有點相同,其效果和第二個方法的效果又有點相似,其中by其表示等差,,length表示的是個數,根據個數來判斷方差到底是多少
這三種創建向量方法的總結對比,似乎會得到一個結論:
第一種,適合於創建有限個少量的元素的向量
第二種,適合於創建大量元素,但是這些元素之間關系不是那么強烈的向量
第三種,適合創建擁有等差性質的向量
下面的時候,還有一個創建向量的方法。。。。。
最后還有一個向量,是R語言之中內置的常向量,用來表示a,b,c,d...z等26個字母
2,使用特定的函數,對向量進行操作
這里包括了which函數,其中which.max()和which.min()分別用來取向量中的最大值和最小值的下標,注意是下標,不是對應的值
還可以用來去特定范圍和特定值的下標
而后便是rev()函數和sort()函數,分別用來進行反轉和排序
2,矩陣
不同於創建向量的方法,矩陣的創建方法只有一種,且是在向量的基礎上,對向量進行按列和按行進行排序得到的結果。
由上面可知,前面有關三個創建向量的方法是有誤的,c()方法很顯然也可以用來創建大量的元素的向量
用matrix方法對向量進行組合的時候,默認是安裝列來進行書序的組合,比如第一個,矩陣,按照列,第一個列是1,2,3,第二列才是4,5,6所以就是明顯的按列進行,
如果改為用byrow=T,則改為按行來排列
3,數組
4, 數據框
數據框的構建也只有一種方法,他的也是有向量組合而成,由此可以見得,向量是R語言最根本對的數據結構,如果沒有向量,一切都是不行的。
同時不同於矩陣,他的每一個列可以和其他的列是不同的類型
5,factor
下圖所示,iris是R語言內置的數據框,如果使用facotor就可以選擇其中的一列
如上圖所指示,就是去的列的值了,字面的上的意思就是取得影響因子,如果吧每一個當一個事物的特征值的話
6,列表
所謂列表,可以看成是有序個元素的集合,他存進去的順序很顯然是和取出來的書序是相等的。
三,R語言計算相關的函數:
普通運算:
由上圖所示,mean()是求平均值,sum()是求和,max( )是求最大值,,min() 是求最小值
矩陣運算,
包括加減乘除,求特征值和特征向量等等
其加法減法的表示沒有啥特殊的,同時需要注意的是,t()是表示轉置,他的功效很大,還可以吧轉化為矩陣,如下圖所示:
就完成了到行矩陣的轉換,同時也完成了行矩陣到列矩陣的轉換
矩陣的乘法,就是%*% ,純粹的*只是矩陣的元素相乘。。
diag()函數,可以根據矩陣獲得列表對象線上的元素,當然還可以根據對角線上的元素,來創建一個矩陣
同時可以用來構建單位陣
如下計算,rnorm是去的隨機數,solve()函數是用求得矩陣a的逆矩陣,即為矩陣的除法
如下圖所示,solve函數依舊可以用來解方程組:
如下圖所示, eigen函數就是用來取得一個矩陣的特征向量和特征值,同時可以使用$來取出
四,R的語句:
for語句:
不同於別的語法,for循環之中,沒有必要初始化值,a或者b有一個初始化的值
while 循環語句:
不同於上面的,a需要有初始的值,也還要控制i的加減
五,一些其他的特殊的函數:
注意在,文本中,如果想加載這個文件打印,就需要在文本的代碼之中,使用print()函數。。。