factor()函數


因子型(factor)表示編號或登記,是用來存儲類別的數據類型,是離散的,與連續性值相對。如果把數字作為因子,那么在導入數據后,需要將向量轉換為因子(factor),而因子在整個計算過程中不再作為數值,而是作為“符號”。 講的很好的R因子

data <- c(1,2,2,3,1,2,3,3,1,2,3,3,1)
data
fdata<-factor(data)
fdata
class(fdata)
class(data)
levels(fdata)
rdata<-factor(data,labels = c("I","II","III"))
rdata
rdata<-factor(data,labels=c("e","ee","eee")) rdata mons <- c("March","April","January","November","January", "September","October","September","November","August", "January","November","November","February","May","August", "July","December","August","August","September","November", "February","April") mons<-factor(mons) mons mons = factor(mons,levels=c("January","February","March","April","May","June","July","August","September","October","November","December"),ordered=TRUE) mons table(mons) ?table()

  

 

 

 

 #factor()函數將原來的數值型的向量轉化為factor類型。factor類型的向量有levels和labels的概念。Levels就是factor所有因素的集合(沒有重復),Levels就是factor中元素排除重復后字符化的結果,levels元素都是character類型,可以在生成factor時,指定levels。

factor最大的作用是指定數據的順序,即指定后邊作圖過程自變量的顯示順序。

 

 Levels表示因子的值域。所以在指定了levels后,factor每個元素值只能取因子水平中的值或缺失。

創建因子用factor()函數創建因子型變量。factor(x=character(),levels,lables=levels) #默認的labels等於levels

 

 還可以通過factor()修改level

 

  可以通過factor()函數創建因子,factor(x=character(),levels,labels=levels,exclude=NA,orderd=is.ordered(x),nmax=NA)

                 x: 字符向量

                 levles: 水平,字符類型,用於設置x可能包含的唯一值,元素的集合,默認值是x的所有唯一值。   注:如果x不是字符向量,那么就會用as.character(x)轉換為字符向量,然后取x向量的水平。x向量的取值與levels有關。levels順序默認是向量的獨特元素集合。通過設置levels 調整子圖順序。如

#jointcalling_GenotypeQC$maf=factor(jointcalling_GenotypeQC$maf,levels=c("All", "MAC=1","0-0.01","0.01-0.05","0.05-0.2","0.2-0.5")) glimpse(jointcalling_GenotypeQC) #ggboxplot(jointcalling_GenotypeQC,x="Steps",y="CONCORDANCE",color = "Steps",facet.by = "maf",bxp.errorbar = T,palette = "aaas")+stat_compare_means(aes(label = ..p.format..),label.x=1.4)

                 labels: 水平的標簽,用於對每個因子水平添加標簽,可以對因子水平levels重命名。順序與levels順序對應一致.

                 exludes: 排除的字符

                 ordered: 邏輯值,指定水平是否有序

                 nmax: 水平的上限數量

 如 sex<-factor(c('f','m','f','f','m'),levels=c('f','m'))

 

> levels(sex) #查看因子水平

[1] "f" "m"

> nlevels(sex) #查看level長度

[1] 2

 

> sex=factor(c('f','m','f','f','m'),levels=c('f','m'),labels=c('female','male'),ordered=TRUE) # 典型例子。

 

  

 

因子是無序的,因子的順序實際指因子水平的順序,有序因子的因子水平是有序的,即ordered=TRUE,默認值。

 

> factor(mtcars$cyl) #因為cyl列的levels是默認的按從小到大排序的獨特集:4,6,8 對其對應的重賦值alpha beta gamma. 因此出來的值就是 beta..

[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4

Levels: 4 6 8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM