R语言中的因子类型详解
一、Factor函数
#函数factor可以把一个向量编码为一个因子,其一般形式为:
#factor(x,levels=sort(unique(x),na.last=TRUE),labels,exculde=NA,order=FALSE)
#其中x是向量,levels是水平,可以自行指定各离散的取值,不指定时由x的不同值来表示,labels可以用来指定各水平的标签
#不指定时用各离散取值的对应字符串
sex<-c("M","F","M","M","F")
factor(sex)
#使用is.factor来判断对象是否为因子类型
is.factor(sex)
#使用as.factor来将对象转换为因子类型
sex.factor<-as.factor(sex)
#使用levels来取得因子中的水平
levels(sex.factor)
# [1] "F" "M"
二、tapply函数
#函数tapply() #当我们知道5个人的性别以及5个人的身高的时候,就能计算出每个性别下的平均身高 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具有相同个数的因子类型,fun为指定的方法
三、gl()函数
#gl()函数 #gl函数能很快的产生因子,其基本用法为: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
补充:R语言中因子(factor)转换成数值型(numeric)的问题
一直觉得只要是数字,不管是什么类型的,都可以通过as.numeric()函数转换为对应的numeric类型的数字,例如
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)对应的值并非100 200 300 301 302 400 10,而是2 3 4 5 6 7 1。因子(factor)转换成数值型(numeric)的规则是这样的:
一共有n个数,那么转换后的数字就会在1——n中取值,数字最小的取一,次小的取二,以此类推。
那么如何让因子(factor)类型里的数值转换对应的数值型呢?
as.numeric(as.character(factorname)) as.numeric(levels(factorname)[factorname])
以上代码都可以实现将因子(factor)类型里的数值转换对应的数值型,思路都是先转换成字符型然后再转换成数值型。
相关文章
R语言数据可视化绘制Circular bar plot实现环形柱状图
这篇文章主要为大家介绍了R语言绘制Circular bar plot实现环形柱状图的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-02-02
R语言实现将分类变量转换为哑变量(dummy vairable)
这篇文章主要介绍了R语言实现将分类变量转换为哑变量(dummy vairable),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-04-04
R语言ggplot2 title设置教程(main,axis和legend titles)
ggplot2是一个强大的作图工具,它可以让你不受现有图形类型的限制,创造出任何有助于解决你所遇到问题的图形,下面这篇文章主要给大家介绍了关于R语言ggplot2 title设置(main,axis和legend titles)的相关资料,需要的朋友可以参考下2023-02-02


最新评论