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