日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

R语言数据类型基础1 数值型、逻辑型与文本型

發(fā)布時(shí)間:2023/12/8 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言数据类型基础1 数值型、逻辑型与文本型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

R語(yǔ)言數(shù)據(jù)類(lèi)型基礎(chǔ)1 數(shù)值型、邏輯型與文本型

我看的R語(yǔ)言教材是李東風(fēng)老師寫(xiě)的,已經(jīng)跟著寫(xiě)了一周的代碼了,但是可能是缺乏練習(xí)和總結(jié),我相當(dāng)于是打了遍字而已。所以現(xiàn)在又回頭總結(jié)一下,里面一些太過(guò)細(xì)節(jié)的操作我就不再贅述了,只想在此處歸納總結(jié)一些最基礎(chǔ)和最常用的操作。

眾所周知 ,R語(yǔ)言是一個(gè)針對(duì)向量進(jìn)行操作的語(yǔ)言,首先說(shuō)一下R語(yǔ)言中怎么定義一個(gè)向量。
最簡(jiǎn)單的,只需要利用c()函數(shù)即可,如下所示:

m1<-c(1,2,3)#生成了一個(gè)數(shù)值型向量 m2<-c("你好","Hello")#生成了一個(gè)字符型向量

接下來(lái),針對(duì)不同的向量類(lèi)型,給出一些常用的操作說(shuō)明。

數(shù)值型向量

基本的一些操作

length(x)#這個(gè)是用來(lái)求向量x的長(zhǎng)度 numeric(x)#生成一個(gè)長(zhǎng)度為x,但每個(gè)元素都是0的數(shù)值型向量 + - * / ^ #分別代表加減乘除和乘方

值得注意的點(diǎn),在R語(yǔ)言中,向量和向量可以進(jìn)行運(yùn)算
但是在用如加減乘除等運(yùn)算時(shí),都是對(duì)應(yīng)元素進(jìn)行加減乘除,如果想做如內(nèi)積、外積運(yùn)算時(shí),得確定一下相應(yīng)的運(yùn)算符

另外一些操作

%/% #這是整除符號(hào) %% #這是求余符號(hào) sort() #進(jìn)行排序 rev() #排列次序反轉(zhuǎn) order() #返回排序后的**下標(biāo)**(這個(gè)好像也不怎么用?)

基本的一些統(tǒng)計(jì)函數(shù)

這里的函數(shù)可太基本了,感覺(jué)哪個(gè)語(yǔ)言可能都自帶了 sum(求和) mean(求平均值) var(求樣本方差) sd(求樣本標(biāo)準(zhǔn)差), min(求最小值) max(求最大值) range(求最小值和最大值) cumprod(累乘) cumsum(累加)

除了對(duì)已經(jīng)有的向量進(jìn)行操作,我們當(dāng)然還得學(xué)會(huì)如何創(chuàng)造生成一些向量

在這里就記住一個(gè)seq得了,當(dāng)然還有rep,但是也不怎么用到 seq(x,y,by=2)#這就是生成從x到y(tǒng)的序列,步長(zhǎng)為2 seq(x,y,length.out=100)#這就是生成從x到y(tǒng)的序列,序列的長(zhǎng)度為100 相當(dāng)于一個(gè)是按照步長(zhǎng)生成,一個(gè)是先確定了長(zhǎng)度再進(jìn)行生成

數(shù)值向量還包括了復(fù)數(shù)向量,但是在此就不贅述了(畢竟也不是很能用到?)

邏輯型向量

邏輯型的取值只有兩種,即TRUE和FALSE,當(dāng)然也可以簡(jiǎn)寫(xiě)為T(mén)和F.
除了這兩種之外,其實(shí)還可以算有缺失值,在R語(yǔ)言中,我們用NA來(lái)表示缺失值。
我們可以如下來(lái)得到一個(gè)邏輯型向量

m<-c(1,2,3) a1<-m>=2

在這樣一段程序運(yùn)行完后,我們就得到了一個(gè)邏輯型向量a1,它的取值是(FALSE,TRUE,TRUE)
(我發(fā)現(xiàn)我還不太會(huì)將R語(yǔ)言的結(jié)果也放出來(lái),這是不是要用R markdown啊?等我學(xué)會(huì)了之后寫(xiě)博客肯定會(huì)好看且清楚很多)

我覺(jué)得還比較有用的函數(shù)就是is.na(x),因?yàn)榻?jīng)常會(huì)遇見(jiàn),其作用是判斷x向量是否為缺失值。大家都知道,R語(yǔ)言是一個(gè)向量型語(yǔ)言,故而它實(shí)際上會(huì)對(duì)x這個(gè)向量中的每一個(gè)元素進(jìn)行一下驗(yàn)證。看看里面每一個(gè)元素是否是缺失的,然后會(huì)返還一個(gè)邏輯值,也就是T或者F。
類(lèi)似的還有:

is.na()#是否是缺失值 is.finite()#是否是Inf值(我到現(xiàn)在學(xué)R 還沒(méi)見(jiàn)過(guò)Inf值誒)

邏輯型還有一些其他操作,但是我覺(jué)得目前需要消化經(jīng)常用到的就是這些了。

文本型向量

文本型向量也就是字符型向量,在這里我覺(jué)得值得去記憶,最基礎(chǔ)的就是取子串、類(lèi)型轉(zhuǎn)換,不過(guò)還需要掌握一下paste()函數(shù)和字符串長(zhǎng)度。
直接放上代碼吧
paste()函數(shù)

paste(c("ab","cd"),c("12","34"))#將兩個(gè)字符串連接,中間由空格分隔 #大家要記住,R語(yǔ)言是向量型的語(yǔ)言,將這兩個(gè)字符型向量用paste連接后,居然得到的是c("ab 12","cd 34")。這不可不謂之神奇,但我有時(shí)候會(huì)覺(jué)得這個(gè)邏輯嚴(yán)謹(jǐn)嗎,我總害怕R語(yǔ)言這個(gè)特性會(huì)在編程時(shí)不那么嚴(yán)謹(jǐn)..(我有發(fā)現(xiàn)過(guò),但是我感覺(jué)是我菜,所以我不說(shuō)) 還可以有 paste(c("ab","cd"),c("12","34"),sep='')#這樣就不會(huì)有空格分開(kāi)了,會(huì)連接的非常緊密,另外這是sep不是seq,seq是用來(lái)生成向量的哈 另外如果只想對(duì)一個(gè)字符型向量中的各個(gè)元素進(jìn)行連接呢? paste(c("ab","cd"),collapse="")#利用collapse參數(shù)即可,不用的話(huà)對(duì)這個(gè)字符型向量將不造成任何影響

取子串的操作

substr(x, start, stop)#這是對(duì)一個(gè)字符串進(jìn)行操作,而不是對(duì)一個(gè)字符串向量進(jìn)行操作噢 #其含義是指,取出x這個(gè)字符串的從第start個(gè)位置一直取到stop位置。 而substr(x,start,stop)中的x如果是個(gè)向量的話(huà),那么很顯然,我們是對(duì)x的每個(gè)元素都進(jìn)行這種取子串的操作

類(lèi)型轉(zhuǎn)換

as.numeric()#轉(zhuǎn)換成數(shù)值型 as.character()#轉(zhuǎn)換成字符型

還有一個(gè)功能,個(gè)人感覺(jué)比較有用,即子串替換
利用gsub()函數(shù)即可實(shí)現(xiàn)

x<-"1;3;5;7,9"#生成了一個(gè)字符串 gsub(";",",",x,fixed=TRUE)#將分號(hào)換成了逗號(hào),不過(guò)這個(gè)fixed參數(shù)是什么意思我也還不知道。

以上就是最基礎(chǔ)的三種數(shù)據(jù)類(lèi)型的簡(jiǎn)單操作啦!
總結(jié)一下就是數(shù)值型我們有排序、簡(jiǎn)單統(tǒng)計(jì)函數(shù)、生成序列,邏輯型有判斷,文本型有替換子串、取子串、轉(zhuǎn)換類(lèi)型、連接

這些都不是很難,我感覺(jué)真正需要再總結(jié)一下的應(yīng)該是R語(yǔ)言中的各個(gè)數(shù)據(jù)結(jié)構(gòu)。
比如列表list,數(shù)據(jù)框data.frame(或者說(shuō)tibble),因子factor這一些。

如果有大佬愿意帶我學(xué)習(xí)的話(huà)就好了

總結(jié)

以上是生活随笔為你收集整理的R语言数据类型基础1 数值型、逻辑型与文本型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。