r语言x c(-1 -2),【软件】R语言入门之向量
“R語(yǔ)言入門(mén)開(kāi)篇,向量(vector)相關(guān)知識(shí)的介紹”
R語(yǔ)言是一款優(yōu)秀統(tǒng)計(jì)學(xué)編程語(yǔ)言,本文介紹R語(yǔ)言的幾個(gè)重要命令,以及R語(yǔ)言中非常重要的一種數(shù)據(jù)結(jié)構(gòu)-向量(Vector)的相關(guān)知識(shí)。
本文使用的開(kāi)發(fā)工具為RGui,以">"開(kāi)頭的語(yǔ)句表示輸入的命令,沒(méi)有">"開(kāi)頭的語(yǔ)句是上一個(gè)語(yǔ)句的輸出結(jié)果。
01
—
常用命令
help()
help()為幫助命令,在()中輸入求助的內(nèi)容并執(zhí)行(按下回車(chē)鍵),返回網(wǎng)頁(yè)幫助文檔
> help(help)
以上命令返回如下網(wǎng)頁(yè)文檔
ls()
ls()命令顯示workspace中存儲(chǔ)的對(duì)象名稱
> ls()character(0)> x ls()[1] "x"> y ls()[1]?"x"?"y"
rm()
rm()為刪除命令,在()中輸入workspace中存儲(chǔ)的對(duì)象名稱并執(zhí)行,將刪除workspace中該對(duì)象
> ls()[1] "x" "y"> rm(x)> ls()[1]?"y"
rm(list=ls())命令能夠清空workspace中所有對(duì)象
> ls()[1] "c" "e" "v" "x" "y" "z"> rm(list=ls())> ls()character(0)
02
—
向量(vector)
數(shù)據(jù)對(duì)象的簡(jiǎn)單說(shuō)明
R語(yǔ)言中包含幾種基本數(shù)據(jù)類型:
數(shù)值型(numeric)
字符型(character)
邏輯型(logical)
復(fù)數(shù)型(complex)
raw型
缺失型(missing value)
將上述基本數(shù)據(jù)以一定的規(guī)則組織起來(lái)形成的數(shù)據(jù)結(jié)構(gòu):
向量(vector)
矩陣(matrix)
數(shù)組(array)
因子(factor)
列表(list)
數(shù)據(jù)幀(data frame)
向量的賦值
1)c()函數(shù)
c()函數(shù)可將()中包含的向量、數(shù)字等元素順序連接成為一個(gè)向量
> x x[1] 1 2 3 4 5> y y[1] 1 2 3 4 5
2)向量的賦值表達(dá)式
可使用或assign函數(shù)賦值,前兩者用于向左賦值
>?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
向量的算術(shù)運(yùn)算
1)規(guī)則
向量之間進(jìn)行算術(shù)運(yùn)算時(shí),向量中的每一個(gè)元素將進(jìn)行相同的運(yùn)算操作
> 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
當(dāng)兩個(gè)向量的長(zhǎng)度不相同時(shí),較短的向量以自身元素循環(huán)的形式進(jìn)行補(bǔ)充,直至與較長(zhǎng)的向量中元素個(gè)數(shù)一致。
> 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)算術(shù)運(yùn)算符
+ 加
- 減
* 乘
/ 除
^ 乘方
3)函數(shù)
sin() 求正弦值
cos() 求余弦值
tan() 求正切值
log() 求底數(shù)為10的對(duì)數(shù)值
exp() 求底數(shù)為e的指數(shù)
sqrt() 求平方根
sqrt(-2) 返回NaN
sqrt(-2+0i) 返回復(fù)數(shù)
> c c[1] NaN> x x[1]?0+1.414214i
max() 求最大值
min() 求最小值
median() 求中位數(shù)
range() 求最大值和最小值,相當(dāng)于c(min(),max())
length() 求向量中元素個(gè)數(shù)
sum() 求向量中所有元素之和
prod() 求向量中所有元素之積
mean() 求樣本均值
var() 求樣本方差,var(x)等價(jià)于sum((x-mean(x))^2)/(length(x)-1)
sd() 求樣本標(biāo)準(zhǔn)差
quantile() 求百分位數(shù)
cov(x, y) 求向量x和y的協(xié)方差
cor(x,y) 求向量x和y的相關(guān)系數(shù)
sort() 返回遞增排序后的向量
規(guī)則序列的生成
1)":"運(yùn)算符
生成間隔為1的遞增或遞減數(shù)列
> 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()函數(shù)
seq()函數(shù)生成規(guī)則序列
seq(from=1, to=1, by=(to-from)/(length.out-1), length.out=NULL, along.with=NULL, ...)
---by? 表示步長(zhǎng)或間隔
> 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()函數(shù)
rep()函數(shù)生成重復(fù)序列,設(shè)置參數(shù)times或each可實(shí)現(xiàn)不同的重復(fù)形式
> 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
邏輯向量
與上述介紹的數(shù)值型向量類似,R語(yǔ)言可以定義邏輯向量。邏輯向量的元素可以是TRUE、FALSE、NA(無(wú)效值)
1)賦值
> l l[1] TRUE FALSE NA NA FALSE
條件表達(dá)式可生成邏輯向量
> 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)條件運(yùn)算符
> 大于
< 小于
== 等于
>= 大于等于
<= 小于等于
!= 不等于
& 且
| 或
!非
> 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
缺失值
當(dāng)元素是無(wú)效值或缺失值的時(shí)候,元素被賦予NA值(not avaliable的縮寫(xiě))。一般情況下,作用于NA值的操作將得到NA值。
> x[1] 1 2 3 NA> x+1[1] 2 3 4 NA
is.na(x)函數(shù)逐個(gè)判斷向量x中的元素是否為NA值
> x is.na(x)[1] FALSE FALSE FALSE TRUE FALSE TRUE
R語(yǔ)言中還有第二類缺失值,即NaN(Not a Numbe的縮寫(xiě))。is.na()函數(shù)能夠不加區(qū)別地識(shí)別NA值和NaN值,is.nan()函數(shù)僅識(shí)別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
字符向量
字符型數(shù)據(jù)即包含在單引號(hào)或雙引號(hào)中的一串字符
1)賦值
> x x[1] "x" "y" "How" "Jun" "R"
2)轉(zhuǎn)義字符
在字符型數(shù)據(jù)中,稱為轉(zhuǎn)義字符,使用?Quotes命令可查看所有轉(zhuǎn)義字符。
3)paste()函數(shù)
paste()函數(shù)能夠逐個(gè)連接兩個(gè)或多個(gè)字符向量中每一個(gè)元素
paste(..., sep="", collapse = NULL)
---...?? 一個(gè)或多個(gè)R對(duì)象,被轉(zhuǎn)換為字符串
---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"
索引向量
向量名后加中括號(hào),并在中括號(hào)中填入索引向量,可獲得原向量的子集。
創(chuàng)建向量子集的表達(dá)式:vector[index_vector]
索引向量分為如下四種類型:
1)邏輯索引向量
邏輯索引向量使用邏輯值TRUE和FALSE進(jìn)行索引,遇到TRUE值時(shí)取出作為子集的元素。當(dāng)邏輯索引向量和原向量長(zhǎng)度不一時(shí),索引向量或循環(huán)補(bǔ)充或截?cái)唷?/p>
> 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)正整數(shù)索引向量
正整數(shù)索引向量表示創(chuàng)建子集時(shí)取出該位置上的元素,正整數(shù)索引向量中元素的取值范圍是{1,2,3,4,length(x)},R語(yǔ)言中第一個(gè)元素的位置為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)負(fù)整數(shù)索引向量
負(fù)整數(shù)索引向量中表示排除該元素的意思,即在創(chuàng)建子集時(shí)不選擇負(fù)整數(shù)的絕對(duì)值位置上的元素。
> 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)字符索引向量
當(dāng)向量中的元素具有名稱時(shí),可使用名稱進(jìn)行索引。names()函數(shù)可以為向量中的元素添加名稱,名稱與數(shù)字索引相比更容易記憶。
> 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
—
描述性統(tǒng)計(jì)實(shí)踐
使用某班級(jí)的身高數(shù)據(jù)作為練習(xí)的數(shù)據(jù)集,對(duì)數(shù)據(jù)集進(jìn)行描述性統(tǒng)計(jì)。
1)輸入數(shù)據(jù):
> 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)數(shù)值描述性度量
計(jì)算數(shù)據(jù)集的樣本容量、平均值、極差、樣本方差、樣本標(biāo)準(zhǔn)差、最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)、最大值
> 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()函數(shù)能夠一次性計(jì)算出最小值、下四分位數(shù)、中位數(shù)、樣本均值、上四分位數(shù)、最大值;
fivenum()函數(shù)能夠一次性計(jì)算出最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)、最大值。
> 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得分判據(jù):abs(z)>3
> s[abs((s-mean_s)/sd_s)>3]numeric(0)
盒子圖判據(jù):>Q3+3*(Q3-Q1) or <Q1-3*(Q3-Q1)
> s[(s>Q3+3*(Q3-Q1))|(s
5)判斷數(shù)據(jù)的正態(tài)性
判據(jù)1:四分位間距與標(biāo)準(zhǔn)差之比IQR/s≈1.3時(shí),數(shù)據(jù)近似正態(tài)
> (Q3-Q1)/sd_s75%1.923925
判據(jù)2:正態(tài)概率圖
> qqnorm(s)>?qqline(s,col=2,lwd=2)
總結(jié)
以上是生活随笔為你收集整理的r语言x c(-1 -2),【软件】R语言入门之向量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c语言链表与字符结合,C语言实现双链表的
- 下一篇: 14秋 c 语言程序设计 在线作业1,1