还在被R语言中的因子factor毒打吗

还在被R语言中的因子 factor毒打吗?

视频教程在B站或者微信里搜这个标题即可。

一、R语言为什么要设计出因子factor?

Python中没有因子的概念,为什么R中会有呢?
首先,我们知道,R语言最初是被统计学家设计出来教授统计学课程的。
这跟因子有什么关系?
当然有关系啦,因子作为R语言中内置的原生数据结构对象,它的出现就是来解决分类变量的分组、计数问题。
毕竟,统计学家不会吃饱了没事干搞个没作用的东西出来恶心人,对吧。。。
factor在R中的地位非常重要,如果你学不好factor,意味着你也学不好R。

image-20210404232659616

二、factor是什么?

我的理解:factor在R语言中被称为因子,是R语言中一类特殊的类别型向量,用来给其中的类别元素进行分组、计数。
它是R语言中专门用来统计 【类别型】或者【可枚举型】 的数据。
适用于:【类别数量】或者【可枚举数量】 相对较少的向量。
类别数量=length(unique(向量))

问题1:一个14亿人的身份证号,组成的向量,如果把它变成因子,有意义吗?
没有,因为14亿人的身份证号都是不相同的,因子对这个向量作分组计数的结果,
就是每个人的身份证号作为一组,计数的结果也就是一个。

问题2:一个超市的售货记录,1亿条商品出售记录的向量,商品类别数量为1W,把他变成因子,有意义吗
有,通过把这个向量变成因子,我们可以快速对这1W种商品进行分组、计数。
可以很快看出,哪种商品卖得好,这样因子的作用:分组、计数的效果就出来了。

class<-c("C","A","B","A")#字符串型向量  类别型
age<-c(1,5,4,3)         #数值型向量    可枚举型
f.class<-factor(class)    #因子,可理解为类别型向量。
f.class

image-20210405161257990

image-20210405161337658

image-20210405161405084

三、factor函数的格式

主要的参数格式:
factor(x=character(), levels, labels = levels,ordered = is.ordered(x))
x:为向量 或者为因子,默认会先被转成字符串型向量。
levels:unique(x)的结果,或者为unique(x)的子集。
labels:用于给levels中的结果,重命名。
ordered:值为FALSE 或者TRUE,将levels按字母顺序进行排序。未排序的因子称为普通因子,排序的因子称为有序因子。

四、factor函数的常用操作

4.0 数据准备

#随机采样生成一组字符串型向量
sex<-sample(c("男","女","娘炮"),size=1000,prob=c(0.45,0.45,0.02),replace=TRUE)
age<-sample(0:150,size=1000,replace=TRUE)  #应该没人能活过150岁吧?
logicals<-sample(c(TRUE,FALSE),size=1000,replace=TRUE)

image-20210405161603619

4.1 创建一个factor,普通因子

image-20210405161640651

4.2 查看factor分组计数的结果。

image-20210405162440877

4.3 修改levels,忽略掉不想要的水平,关注我们想要的水平。

image-20210405162733209

4.4 查看factor中的levels

image-20210405162803959

4.5 查看factor的水平数

image-20210405162828817

4.6 通过labels,重命名levels

image-20210405162902410

4.7 创建一个有序的factor。有序因子

image-20210405162944933

4.8 factor与其它类型的互转

image-20210405163053749

4.9 读取文件时禁止将字符串类型变量转换成因子

image-20210405163124705

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值