r语言x c(-1 -2),【软件】R语言入门之向量
“R語言入門開篇,向量(vector)相關知識的介紹”
R語言是一款優秀統計學編程語言,本文介紹R語言的幾個重要命令,以及R語言中非常重要的一種數據結構-向量(Vector)的相關知識。
本文使用的開發工具為RGui,以">"開頭的語句表示輸入的命令,沒有">"開頭的語句是上一個語句的輸出結果。
01
—
常用命令
help()
help()為幫助命令,在()中輸入求助的內容并執行(按下回車鍵),返回網頁幫助文檔
> help(help)
以上命令返回如下網頁文檔
ls()
ls()命令顯示workspace中存儲的對象名稱
> ls()character(0)> x ls()[1] "x"> y ls()[1]?"x"?"y"
rm()
rm()為刪除命令,在()中輸入workspace中存儲的對象名稱并執行,將刪除workspace中該對象
> ls()[1] "x" "y"> rm(x)> ls()[1]?"y"
rm(list=ls())命令能夠清空workspace中所有對象
> ls()[1] "c" "e" "v" "x" "y" "z"> rm(list=ls())> ls()character(0)
02
—
向量(vector)
數據對象的簡單說明
R語言中包含幾種基本數據類型:
數值型(numeric)
字符型(character)
邏輯型(logical)
復數型(complex)
raw型
缺失型(missing value)
將上述基本數據以一定的規則組織起來形成的數據結構:
向量(vector)
矩陣(matrix)
數組(array)
因子(factor)
列表(list)
數據幀(data frame)
向量的賦值
1)c()函數
c()函數可將()中包含的向量、數字等元素順序連接成為一個向量
> x x[1] 1 2 3 4 5> y y[1] 1 2 3 4 5
2)向量的賦值表達式
可使用或assign函數賦值,前兩者用于向左賦值
>?x c(1,1,1,1,1)->y> assign("z",c(2,2,2,2,2))> n=c(3,3,3,3,3)> h x[1] 0 0 0 0 0> y[1] 1 1 1 1 1> z[1] 2 2 2 2 2> n[1] 3 3 3 3 3> h[1]?0?0?0?0?0?1?1?1?1?1?2?2?2?2?2
向量的算術運算
1)規則
向量之間進行算術運算時,向量中的每一個元素將進行相同的運算操作
> x[1] 1 1 1 1 1> y[1] 1 2 3 4 5> x+y[1] 2 3 4 5 6> x-y[1] 0 -1 -2 -3 -4> x+2*y[1] 3 5 7 9 11
當兩個向量的長度不相同時,較短的向量以自身元素循環的形式進行補充,直至與較長的向量中元素個數一致。
> x[1] 1 -1> y[1] 0 0 0 0 0 0 0 0> x+y[1] 1 -1 1 -1 1 -1 1 -1
2)算術運算符
+ 加
- 減
* 乘
/ 除
^ 乘方
3)函數
sin() 求正弦值
cos() 求余弦值
tan() 求正切值
log() 求底數為10的對數值
exp() 求底數為e的指數
sqrt() 求平方根
sqrt(-2) 返回NaN
sqrt(-2+0i) 返回復數
> c c[1] NaN> x x[1]?0+1.414214i
max() 求最大值
min() 求最小值
median() 求中位數
range() 求最大值和最小值,相當于c(min(),max())
length() 求向量中元素個數
sum() 求向量中所有元素之和
prod() 求向量中所有元素之積
mean() 求樣本均值
var() 求樣本方差,var(x)等價于sum((x-mean(x))^2)/(length(x)-1)
sd() 求樣本標準差
quantile() 求百分位數
cov(x, y) 求向量x和y的協方差
cor(x,y) 求向量x和y的相關系數
sort() 返回遞增排序后的向量
規則序列的生成
1)":"運算符
生成間隔為1的遞增或遞減數列
> x x[1] 1 2 3 4 5 6 7 8 9 10> y y[1] 10 9 8 7 6 5 4 3 2 1
2)seq()函數
seq()函數生成規則序列
seq(from=1, to=1, by=(to-from)/(length.out-1), length.out=NULL, along.with=NULL, ...)
---by? 表示步長或間隔
> seq(1,10)[1] 1 2 3 4 5 6 7 8 9 10> seq(from=1,to=10,by=2)[1]?1?3?5?7?9
3)rep()函數
rep()函數生成重復序列,設置參數times或each可實現不同的重復形式
> rep(1,5)[1] 1 1 1 1 1> rep(c(1,2,3),times=2)[1] 1 2 3 1 2 3> rep(c(1,2,3),each=2)[1] 1 1 2 2 3 3
邏輯向量
與上述介紹的數值型向量類似,R語言可以定義邏輯向量。邏輯向量的元素可以是TRUE、FALSE、NA(無效值)
1)賦值
> l l[1] TRUE FALSE NA NA FALSE
條件表達式可生成邏輯向量
> x x_bigger_than_55> x[1] 1 2 3 4 5 6 7 8 9 10> x_bigger_than_5[1] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE
2)條件運算符
> 大于
< 小于
== 等于
>= 大于等于
<= 小于等于
!= 不等于
& 且
| 或
!非
> x1[1] 0 1> !x1[1] TRUE FALSE> x1[1] 0 1> x2[1] 1 0> x1&x2[1] FALSE FALSE> x1|x2[1] TRUE TRUE
缺失值
當元素是無效值或缺失值的時候,元素被賦予NA值(not avaliable的縮寫)。一般情況下,作用于NA值的操作將得到NA值。
> x[1] 1 2 3 NA> x+1[1] 2 3 4 NA
is.na(x)函數逐個判斷向量x中的元素是否為NA值
> x is.na(x)[1] FALSE FALSE FALSE TRUE FALSE TRUE
R語言中還有第二類缺失值,即NaN(Not a Numbe的縮寫)。is.na()函數能夠不加區別地識別NA值和NaN值,is.nan()函數僅識別NaN值。
> x x[1] 1 2 NaN NA 3> is.na(x)[1] FALSE FALSE TRUE TRUE FALSE> is.nan(x)[1] FALSE FALSE TRUE FALSE FALSE
字符向量
字符型數據即包含在單引號或雙引號中的一串字符
1)賦值
> x x[1] "x" "y" "How" "Jun" "R"
2)轉義字符
在字符型數據中,稱為轉義字符,使用?Quotes命令可查看所有轉義字符。
3)paste()函數
paste()函數能夠逐個連接兩個或多個字符向量中每一個元素
paste(..., sep="", collapse = NULL)
---...?? 一個或多個R對象,被轉換為字符串
---sep? 分隔符
> c c[1] "1kg" "2kg" "3kg" "4kg" "5kg"> x x[1]?"Jun-1"?"Jun-2"?"Jun-3"?"Jun-4"?"Jun-5"> x x[1] "2020-6-1" "2020-6-2" "2020-6-3" "2020-6-4" "2020-6-5"
索引向量
向量名后加中括號,并在中括號中填入索引向量,可獲得原向量的子集。
創建向量子集的表達式:vector[index_vector]
索引向量分為如下四種類型:
1)邏輯索引向量
邏輯索引向量使用邏輯值TRUE和FALSE進行索引,遇到TRUE值時取出作為子集的元素。當邏輯索引向量和原向量長度不一時,索引向量或循環補充或截斷。
> x x[1] 1 2 3 4 5> x[x>2][1] 3 4 5> index_x x[index_x][1] 1 3 5> (x+2)[x>2&x<5][1]?5?6
2)正整數索引向量
正整數索引向量表示創建子集時取出該位置上的元素,正整數索引向量中元素的取值范圍是{1,2,3,4,length(x)},R語言中第一個元素的位置為1。
> x x[1] 1 2 3 4 5 6 7 8 9 10> x[5][1]?5> x[4:8][1] 4 5 6 7 8> x[rep(c(3,5),times=3)][1] 3 5 3 5 3 5
3)負整數索引向量
負整數索引向量中表示排除該元素的意思,即在創建子集時不選擇負整數的絕對值位置上的元素。
> x[1] 1 2 3 4 5 6 7 8 9 10> x[-5][1] 1 2 3 4 6 7 8 9 10> x[-(2:6)][1] 1 7 8 9 10
4)字符索引向量
當向量中的元素具有名稱時,可使用名稱進行索引。names()函數可以為向量中的元素添加名稱,名稱與數字索引相比更容易記憶。
> x names(x) x["fish"]fish3> xapple cat fish1 2 3
索引賦值操作:
> x x[1] -5 -4 -3 -2 -1 0 1 2 3 4 5> x[x<0] x[1]?5?4?3?2?1?0?1?2?3?4?5
03
—
描述性統計實踐
使用某班級的身高數據作為練習的數據集,對數據集進行描述性統計。
1)輸入數據:
> s?s[1] 176 170 173 179 170 163 168 167 178 173 172 169 178 182 165 172 174 170 166[20] 167 172 164 172 163 176 163 170 174 174 173 169 165 170 172 172 159 163 155[39] 154 156 158 161 162 165 162 163 158 160 161 162 159 156 156 162 156 157 166[58] 155 156 158 157 162 162 155 157 156 157 157
2)數值描述性度量
計算數據集的樣本容量、平均值、極差、樣本方差、樣本標準差、最小值、下四分位數、中位數、上四分位數、最大值
> mean_s var_s sd_s len_s?min_s Q1 median_s Q3 max_s range_s result_s names(result_s) result_slen mean range var sd min Q168.000000 165.058824 28.000000 52.951712 7.276793 154.000000 158.000000median Q3 max163.500000 172.000000 182.000000
summary()函數能夠一次性計算出最小值、下四分位數、中位數、樣本均值、上四分位數、最大值;
fivenum()函數能夠一次性計算出最小值、下四分位數、中位數、上四分位數、最大值。
> summary(s)Min. 1st Qu. Median Mean 3rd Qu. Max.154.0 158.0 163.5 165.1 172.0 182.0> fivenum(s)[1] 154.0 158.0 163.5 172.0 182.0
3)直方圖和箱線圖
> hist(s,main="",col="pink",xlab="height (cm)",breaks=8)
boxplot(s,col="pink")
4)判斷異常值
z得分判據:abs(z)>3
> s[abs((s-mean_s)/sd_s)>3]numeric(0)
盒子圖判據:>Q3+3*(Q3-Q1) or <Q1-3*(Q3-Q1)
> s[(s>Q3+3*(Q3-Q1))|(s
5)判斷數據的正態性
判據1:四分位間距與標準差之比IQR/s≈1.3時,數據近似正態
> (Q3-Q1)/sd_s75%1.923925
判據2:正態概率圖
> qqnorm(s)>?qqline(s,col=2,lwd=2)
總結
以上是生活随笔為你收集整理的r语言x c(-1 -2),【软件】R语言入门之向量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言链表与字符结合,C语言实现双链表的
- 下一篇: 14秋 c 语言程序设计 在线作业1,1