【R语言】R中的因子(factor)

Python017

【R语言】R中的因子(factor),第1张

R中的因子用于存储不同类别的数据,可以用来对数据进行分组,例如人的性别有男和女两个类别,根据年龄可以将人分为未成年人和成年人,考试成绩可以分为优,良,中,差。

R 语言创建因子使用** factor() **函数,向量作为输入参数。

factor() 函数语法格式:

参数说明:

以下实例把字符型向量转换成因子:

我们可以看到输出sex的时候,除了显示字符串的内容以外,这里还有一行levels,证明sex有两个level(类别),female和male。这个顺序也是有讲究的,一般是按字母顺序来排列。我们也可以按照自己的需要来排列因子的顺序。以下实例设置因子水平为levels=c("male","female"):

你会发现现在levels的顺序就按照你设置的来显示了。

我们还能够设置显示的标签

可以看到虽然最初我们构建的向量里面包含的是male和female,最后因子却变成了man和woman。关于这个参数后面我们还会给大家举个更实际的,跟临床数据相关的例子。

R中的因子使用还是更广泛的,例如做差异表达分析的时候我们可以根据因子将数据分成两组。绘制boxplot的时候,我们也可以根据因子来将数据分成两组。更多的实例可以参考下面的视频讲解

R语言基础培训

【R语言】R中的因子(factor)

最近正在学习R语言,碰到了因子factor,自己很不理解,网上找了很多的资料,可是感觉都说的很难,自己不是很理解,所以自己决定写一篇博客来帮助和自己一样有困惑的小伙伴。

首先,因子是离散的,它不是连续的,它只是一个标签。举个例子:

下面我们主要介绍一个关于因子的关键函数factor()及他的一些参数!

这里主要说三个参数

x,我们主要传入的是一个向量,就像上面的例子一样。

为了研究第二、三个参数我们做如下test:

注意到,我们的元素是有重复的,细心的你,发现Levels: 1 2 3保存的是去重的元素,相当于python里面的集合,为什么会这样,或者说这样有什么好处,最大的好处就是节约存储空间,还有就是当数据很多且有很多重复的时候,你可以很直观的看到他真实的数据!

注意,我前面说了,factor的levels只是看不重复的的值,所以这些下该明白了吧。因为V里面不重复的就3个。

然后就会用我们实际需要的levels来一个一个替换,在实践中也是有这种需求的。

labels也可以实现,类比levels即可。传入的依然是c()向量。