◮ R語言筆記(一): 向量及向量的基本操作
R語言簡介:
R語言是一種統計繪圖語言,也指實現該語言的軟體;
R語言是從S語言演變而來,S語言在20世紀70年代誕生於貝爾實驗室,其是用來進行資料探索/統計分析/作圖的解釋性語言;
R語言是在1995年由紐西蘭某大學的學生基於S語言的原始碼編寫的一套能執行S語言的軟體,就是R軟體,命名統稱為R語言;
****************************************************************************************************************************************
一:向量
1:什麼是向量?
這裡可以將向量理解為C語言中的陣列,也可以將其理解為數學中的數列,都能夠很好地理解;
*但是如果使用R語言中的判斷函式is.array( )來判斷使用x=c(1,1,1,1)輸入放入變數x,會提示不是陣列,因為這裡的判斷預設 二維陣列才顯示是陣列。
*直接輸入二維陣列的話就需要在輸入的時候新增維度資訊:
> x = c(1,2,3,4,5,6);dim(x)<-c(2,3) > x [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6
R語言中的許多操作都是基於向量進行的;
2:向量的幾種常見的表示與賦值:
示例:> x = c(1:10) #將1~10十個數賦值給x
> x <- c(1:10) #將1~10十個數賦值給x (使用箭頭也是可以的)
> x2 = c(4:1, 2:5) # 輸出結果 [1] 4 3 2 1 2 3 4 5
> x #直接輸出x的值
> x = c(1,2,3,3,3,4,5,6)
> x [3] #輸出x的第三個資料,3是索引值
>length(x) #輸出x的長度
> x = scan() #從鍵盤輸入資料,一行輸入一個,回車繼續輸入,兩次回車停止輸入
> x = scan()
1: 1
2: 2
3: 23
4:
Read 3 items
3:產生26個字母的向量:
> 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" "z" NA NA NA
[30] NA
4:seq()函式產生向量:
*seq: sequence 序列、按順序排好
> x = seq(1,50,by=2)
> x
[1] 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47
[25] 49
> x = seq(1,50)
> x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
[25] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
[49] 49 50
二:對向量的基本操作(對資料的處理)
1:數理統計部分概念
*具體不理解的名詞可自行查詢資料
均值:mean()
和:sum()
連乘:prod()
中位數:median()
最大值:max()
最小值:min()
極差:max()-min()
方差:var()
標準差:sd()
標準誤差:var()/sqrt(length())
變異係數:sd/mean()**100
偏度:skewness()
峰度:kurtosis()
五數總括:fivenum()
-->>>★★部分概念的初步解釋:
1:峰度(kurtosis)
峰度(peakedness;kurtosis)又稱峰態係數。
表徵概率密度分佈曲線在平均值處峰值高低的特徵數。直觀看來,峰度反映了峰部的尖度。
樣本的峰度是和正態分佈相比較而言統計量,如果峰度大於三,峰的形狀比較尖,比正態分佈峰要陡峭。
反之亦然。
2:偏度(skewness)
偏度(skewness)也稱為偏態、偏態係數,是統計資料分佈偏斜方向和程度的度量,
是統計資料分佈非對稱程度的數字特徵。資料呈現左偏的狀態,偏度為負值,右偏的話偏度為正值。
3:變異係數:
比較兩組資料的離散程度,因為使用標準差比較離散程度的時候可能出現數據量綱不同的情況,
所以定義了變異係數,變異係數是標準差與平均值的比值。
4:五數總括:
使用具有特徵的資料對整體資料進行概括:最小值、下四分位數、中位數、上四分位數、最大值
★5:標準差與標準誤差
標準差與標準誤差的意義、作用和使用範圍均不同。
標準差(亦稱單數標準差)一般用SD(Standard Deviation)表示,
是表示個體間變異大小的指標,反映了整個樣本對樣本平均數的離散程度,是資料精密度的衡量指標;
而標準誤差一般用SE(Standard error)表示,
反映樣本平均數對總體平均數的變異程度,從而反映抽樣誤差的大小,是量度結果精密度的指標。
2:其他基本操作
summary() #求值(最小值、下四分位數,中位數、均值、上四分位數、最大值)
sort() #排序(從小到大)
rev(sort()) #reverse倒置,即按照由大到小排序
which() #定位查詢功能 --->>> 下面附上部分which用法程式碼:
> a = c(1,2,3,4,5,6,7,8,9,11,10,2,2,2,2)
> which.max(a)
[1] 10
> a[which.max(a)]
[1] 11
> which(a==2)
[1] 2 12 13 14 15
> a[which(a==2)]
[1] 2 2 2 2 2
> which(a<2)
[1] 1
三:匯入第三方程式包與第三方程式包的使用
*這裡之所以提到第三方程式包的使用問題,是因為上面的求偏度和峰度需要使用第三方的R包,軟體本身並沒有這個工能;
1: 選單欄->程式包->安裝程式包->會提示選擇不同的伺服器(與下載速度有關)
2: 選擇需要的包下載(如果該包需要用到其他的包,這裡會自動一起下載所有相關的包)
★上面求偏度和峰度使用的R包(這裡給出一個方便使用的,實現該功能的包不止一個):moments
★下載完包後仍不能使用該函式,需要載入剛剛安裝的包,載入的方法有兩種:
1:library(包名)
2:選單欄->程式包->載入程式包->選擇需要使用的包即可
四:附上相關實踐程式碼
> Student = c(90,78.8,68.8,78.0,70.4,80.5,80.5,69.7,71.2,73.5,
+ 79.5,75.6,75.0,78.8,72.0,72.0,72.0,74.3,71.2,72.0,
+ 75.0,73.5,78.8,74.3,75.8,65.0,74.3,71.2,69.7,68.0
+ ,73.5,75.0,72.0,64.3,75.8,80.3,69.7,74.3,73.5,73.5)
> mean(Student) #計算均值
[1] 74.0325
> var(Student) #計算方差
[1] 22.03199
> sd(Student) #計算標準差
[1] 4.693825
> median(Student) #計算中位數
[1] 73.5
> max(Student)-min(Student) #計算極差
[1] 25.7
> var(Student)/sqrt(length(Student)) #計算標準誤差
[1] 3.483564
> sd(Student)/mean(Student)**100 #計算變異係數
[1] 5.361488e-187
> skewness(Student) #計算偏度
[1] 0.7539625
> kurtosis(Student) #計算峰度
[1] 4.983252
> fivenum(Student) #計算五數總括
[1] 64.3 71.2 73.5 75.8 90.0
****************************************************************************************************************************************
最快的腳步不是跨越,而是繼續,最慢的步伐不是小步,而是徘徊。
****************************************************************************************************************************************