R簡介和向量

2021-06-28 09:15:46 字數 3777 閱讀 3284

1.r簡介

r是s語言的一種實現。s語言是由 at&t貝爾實驗室開發的一種用來 進行資料探索、統計分析、作圖的解釋型語言。最初s語言的實現版 本主要是s-plus。s-plus是乙個商業 軟體,它基於s語言,並由 mathsoft公司的統計科學部進一步完善。後來auckland大學的 robertgentleman 和 ross ihaka 及其他志願人員開發了乙個r系 統。r的使用與s-plus有很多類似之處,兩個軟體有一定的相容性。

r是用於統計分析、繪圖的語言和操作環境。r是屬於gnu系統的乙個自由、免費 、源**開放的軟體,它是乙個用於統計計算和統計製圖的優秀工具

r是一套完整的資料處理、計算和製圖軟體系統。其功能包括:資料儲存和處理系 統;陣列運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統計分析工 具;優秀的統計製圖功能;簡便而強大的程式語言:可操縱資料的輸入和輸入,可實 現分支、迴圈,使用者可自定義功能。      

r的特點

1.有效的資料處理和儲存機制。

2.擁有一整套陣列和矩陣的操作運算子。

3.一系列連貫而又完整的資料分析中間工具。

4.圖形統計可以對資料直接進行分析和顯示,可用於多種圖形裝置。

5.一種相當完善、簡潔和高效的程式語言。它包括條件語句、迴圈語句、使用者自 定義的遞迴函式以及輸入輸出介面。

6.r語言是徹底物件導向的統計程式語言。

7.r語言和其它程式語言、資料庫之間有很好的介面。

8.r語言是自由軟體,可以放心大膽地使用,但其功能卻不比任何其它同類軟體差。

9.r語言具有豐富的網上資源

2.向量

2.1   向量定義

具有大小方向的量

2.2   生成向量:

2.2.1   c()

> c(1,4,3,5,6)

[1] 1 4 3 56        

2.2.2   a:b

> 1:7

[1] 1 2 3 4 5 6 7

這兩個效果都是產生向量

2.2.3   seq()

>seq(2,10)  產生向量元素從2到10的向量

[1]  2  3  4 5  6  7  8  9 10

>seq(2,10,by=2)    產生從2到10間隔為2的向量元素

[1]  2  4  6  8 10

間隔是2生成的向量的元素是2+2n<=10  其中n=(0,1,2……)  如果沒有by=2,那麼預設值by=1

>seq(2,10,length=6)     從2到10均勻產生6個向量元素

[1]  2.0  3.6  5.2 6.8  8.4 10.0

一共產生6個向量元素 其中第乙個為向量元素為2,最後乙個向量元素10,從2到10均分成6份

這個函式的

by屬性和

length

屬性不能共存

這倆屬性有衝突

如:上面兩個例子

2.2.4   letters

它不是乙個函式  是26字母的資料集  多餘的用na表示

>letters[1:26]產生26英文本母

[1] "a" "b""c" "d" "e" "f" "g""h" "i" "j" "k" "l""m" "n" "o" "p" "q" "r"

[19] "s" "t""u" "v" "w" "x" "y""z"

>letters[1:30]

[1] "a" "b""c" "d" "e" "f" "g""h" "i" "j" "k" "l""m" "n" "o" "p" "q" "r""s" "t" "u" "v" "w""x" "y"

[26] "z" na  na na  na

產生26個英文本母,多餘的用na表示

2.3   向量操作

2.3.1   which()

> x=seq(2,20,3)       產生從2到20間隔為3的向量元素

> x

[1]  2  5  811 14 17 20

>which.max(x)          which.max(x)返回最大元素座標

[1] 7

>which.min(x)          which.min(x)返回最小元素下標

[1] 1

>which(x==11)         which(x==11)返回向量元素為11的元素下標

[1] 4

>which(x>11)          which(x>11)返回向量元素大於11的元素下標

[1] 5 6 7

which(x)函式返回向量元素下標

2.3.2   rev()

向量的元素逆置

> x=c(1,4,3,2,6,8)

> x

[1] 1 4 3 2 6 8

> rev(x)

[1] 8 6 2 3 4 1

2.3.3   sort()

向量的元素從小到大排序

> x=c(1,4,3,2,6,8)

> x

[1] 1 4 3 2 6 8

> sort(x)

[1] 1 2 3 4 6 8

補:

陣列

一系列標量的集合,在r中是指數字的集合在r中先生成向量然後在轉換成陣列

x=c(1:10)生成乙個向量  用dim(x)<-c(2,5)其中c中的2是生成陣列的行5是生成陣列的列 

> x=c(1:10)

> is.array(x)

[1]false        x不是陣列

> dim(x)=c(2,5)   將x轉化成乙個二維陣列

> is.array(x)      x是陣列

[1] true

> x

[,1]  [,2]  [,3]   [,4]  [,5]

[1,]   1    3    5   7    9

[2,]   2    4    6    8   10

生成乙個二維陣列

R向量賦值和操作

x c 1,2,3 x 1 123 assign y c 4,5,6 y 1 456 z c x,y 用x,y生成向量z z 1 123 456 v 1 3 v 1 123 v 10 1 v 1 1098 7654 321 x seq from 1,to 20,by 3 x 1 147 1013 1...

R語言 向量

1 seq 產生有規律的數列,間距省略時預設值為1。例1 seq 10,20,0.5 例2 seq 0,by 0.03,length 15 2 rep 產生有規律的數列,重複第乙個變數若干次。例1 rep 1 3,1 3 例2 rep 1 3,rep 2,3 例3 rep 1 3,length 10...

R語言 向量

向量是以一維陣列的方法管理資料的一種物件型別。可以說向量是r語言中最基本的資料型別,很多演算法函式都是以向量的形式輸入的。向量可以是數值型 字元型 邏輯值型 t f 和複數型。seq產生等距間隔的數列,其基本形式為 seq from 1,to 1,by from to length.out 1 le...