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

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

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

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

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

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

二、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

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

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

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

三、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)

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

4.1 创建一个factor,普通因子

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

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

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

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

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

4.4 查看factor中的levels

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

4.5 查看factor的水平数

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

4.6 通过labels,重命名levels

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

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

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

4.8 factor与其它类型的互转

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

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

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

上一篇:实验3 类与对象的定义及使用-加强


下一篇:『论文笔记』Swin Transformer