R語言中的因子類型詳解
一、Factor函數(shù)
#函數(shù)factor可以把一個向量編碼為一個因子,其一般形式為:
#factor(x,levels=sort(unique(x),na.last=TRUE),labels,exculde=NA,order=FALSE)
#其中x是向量,levels是水平,可以自行指定各離散的取值,不指定時由x的不同值來表示,labels可以用來指定各水平的標(biāo)簽
#不指定時用各離散取值的對應(yīng)字符串
sex<-c("M","F","M","M","F")
factor(sex)
#使用is.factor來判斷對象是否為因子類型
is.factor(sex)
#使用as.factor來將對象轉(zhuǎn)換為因子類型
sex.factor<-as.factor(sex)
#使用levels來取得因子中的水平
levels(sex.factor)
# [1] "F" "M"
二、tapply函數(shù)
#函數(shù)tapply() #當(dāng)我們知道5個人的性別以及5個人的身高的時候,就能計(jì)算出每個性別下的平均身高 height<-c(170,175,180,165,168) tapply(height,sex.factor,mean) # F M # 171.5000 171.6667 #tapply 的使用格式為tapply(x,index,fun) 其中x為對象,index為與x具有相同個數(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)換為對應(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)對應(yīng)的值并非100 200 300 301 302 400 10,而是2 3 4 5 6 7 1。因子(factor)轉(zhuǎn)換成數(shù)值型(numeric)的規(guī)則是這樣的:
一共有n個數(shù),那么轉(zhuǎn)換后的數(shù)字就會在1——n中取值,數(shù)字最小的取一,次小的取二,以此類推。
那么如何讓因子(factor)類型里的數(shù)值轉(zhuǎn)換對應(yīng)的數(shù)值型呢?
as.numeric(as.character(factorname)) as.numeric(levels(factorname)[factorname])
以上代碼都可以實(shí)現(xiàn)將因子(factor)類型里的數(shù)值轉(zhuǎn)換對應(yīng)的數(shù)值型,思路都是先轉(zhuǎn)換成字符型然后再轉(zhuǎn)換成數(shù)值型。
相關(guān)文章
R語言數(shù)據(jù)可視化繪制Circular?bar?plot實(shí)現(xiàn)環(huán)形柱狀圖
這篇文章主要為大家介紹了R語言繪制Circular?bar?plot實(shí)現(xiàn)環(huán)形柱狀圖的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
R語言實(shí)現(xiàn)將分類變量轉(zhuǎn)換為啞變量(dummy vairable)
這篇文章主要介紹了R語言實(shí)現(xiàn)將分類變量轉(zhuǎn)換為啞變量(dummy vairable),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言差異檢驗(yàn):非參數(shù)檢驗(yàn)操作
這篇文章主要介紹了R語言差異檢驗(yàn):非參數(shù)檢驗(yàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言ggplot2?title設(shè)置教程(main,axis和legend?titles)
ggplot2是一個強(qiáng)大的作圖工具,它可以讓你不受現(xiàn)有圖形類型的限制,創(chuàng)造出任何有助于解決你所遇到問題的圖形,下面這篇文章主要給大家介紹了關(guān)于R語言ggplot2?title設(shè)置(main,axis和legend?titles)的相關(guān)資料,需要的朋友可以參考下2023-02-02
R語言ggplot2實(shí)現(xiàn)將多個照片拼接到一起
本文主要介紹了R語言ggplot2實(shí)現(xiàn)將多個照片拼接到一起,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
R語言-繪制雙坐標(biāo)圖直方圖與折線的結(jié)合方式
這篇文章主要介紹了R語言-繪制雙坐標(biāo)圖直方圖與折線的結(jié)合方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
R語言常用函數(shù)總結(jié)梳理(基本對象字符處理?數(shù)學(xué)?統(tǒng)計(jì))
這篇文章主要介紹了R語言常用函數(shù)總結(jié)梳理(基本對象字符處理?數(shù)學(xué)?統(tǒng)計(jì)),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10

