factor()函数
因子型(factor)表示编号或登记,是用来存储类别的数据类型,是离散的,与连续性值相对。如果把数字作为因子,那么在导入数据后,需要将向量转换为因子(factor),而因子在整个计算过程中不再作为数值,而是作为“符号”。 讲的很好的R因子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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<br> 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
本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/15629949.html
posted on 2021-12-01 17:25 BioinformaticsMaster 阅读(1105) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2017-12-01 前行