溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

R語言中的因子類型有哪些

發(fā)布時(shí)間:2021-04-17 15:13:54 來源:億速云 閱讀:152 作者:Leah 欄目:開發(fā)技術(shù)

R語言中的因子類型有哪些?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一、Factor函數(shù)

#函數(shù)factor可以把一個(gè)向量編碼為一個(gè)因子,其一般形式為:
#factor(x,levels=sort(unique(x),na.last=TRUE),labels,exculde=NA,order=FALSE)
#其中x是向量,levels是水平,可以自行指定各離散的取值,不指定時(shí)由x的不同值來表示,labels可以用來指定各水平的標(biāo)簽
#不指定時(shí)用各離散取值的對(duì)應(yīng)字符串
 
sex<-c("M","F","M","M","F")
factor(sex)
#使用is.factor來判斷對(duì)象是否為因子類型
is.factor(sex)
#使用as.factor來將對(duì)象轉(zhuǎn)換為因子類型
sex.factor<-as.factor(sex)
#使用levels來取得因子中的水平
levels(sex.factor)
# [1] "F" "M"

二、tapply函數(shù)

#函數(shù)tapply()
#當(dāng)我們知道5個(gè)人的性別以及5個(gè)人的身高的時(shí)候,就能計(jì)算出每個(gè)性別下的平均身高
height<-c(170,175,180,165,168)
 
tapply(height,sex.factor,mean)
# F        M 
# 171.5000 171.6667 
 
#tapply 的使用格式為tapply(x,index,fun) 其中x為對(duì)象,index為與x具有相同個(gè)數(shù)的因子類型,fun為指定的方法

三、gl()函數(shù)

#gl()函數(shù)
#gl函數(shù)能很快的產(chǎn)生因子,其基本用法為:gl(n,k,length=n*k,labels=1:n,order=false)
 
gl(3,5)
# [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
# Levels: 1 2 3
 
gl(3,1,15)
# [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
# Levels: 1 2 3

補(bǔ)充:R語言中因子(factor)轉(zhuǎn)換成數(shù)值型(numeric)的問題

一直覺得只要是數(shù)字,不管是什么類型的,都可以通過as.numeric()函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的numeric類型的數(shù)字,例如

x<-“123”,x為character類型,而as.numeric(x)則為numeric類型的123。但是因子(factor)類型卻不一樣。

a<-factor(c(100,200,300,301,302,400,10)),它們的值分別為100 200 300 301 302 400 10,然而as.numeric(a)對(duì)應(yīng)的值并非100 200 300 301 302 400 10,而是2 3 4 5 6 7 1。因子(factor)轉(zhuǎn)換成數(shù)值型(numeric)的規(guī)則是這樣的:

一共有n個(gè)數(shù),那么轉(zhuǎn)換后的數(shù)字就會(huì)在1——n中取值,數(shù)字最小的取一,次小的取二,以此類推。

那么如何讓因子(factor)類型里的數(shù)值轉(zhuǎn)換對(duì)應(yīng)的數(shù)值型呢?

as.numeric(as.character(factorname))
as.numeric(levels(factorname)[factorname])

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI