R语言因子

因子是它们用于将数据进行分类并将其存储为级别的数据对象。它们可以同时存储字符串和整数。它们在具有唯一值的有限数目的列是有用的。
例如,"male, "Female" 和 True, False 等. 它们在统计建模的数据分析非常有用。

使用 factor() 函数通过采取向量作为输入来创建因子。

示例

# Create a vector as input.

data <-
c("East","West","East","North","North","East","West","West","West","East","North")

print(data)

print(is.factor(data))



# Apply the factor function.

factor_data <- factor(data)

print(factor_data)

print(is.factor(factor_data))

当我们上面的代码执行时,它产生以下结果:

 [1] "East" 
"West"  "East"  "North" "North"
"East"  "West" 
"West"  "West" 
"East"  "North"

[1] FALSE

 [1] East  West 
East  North North East 
West  West 
West  East  North

Levels: East North West

[1] TRUE

在数据帧的因子

在创建任何数据帧文本数据的列,R语言对待文本列作为分类数据,并在其上创建因子。

# Create the vectors for data frame.

height <- c(132,151,162,139,166,147,122)

weight <- c(48,49,66,53,67,52,40)

gender <-
c("male","male","female","female","male","female","male")



# Create the data frame.

input_data <- data.frame(height,weight,gender)

print(input_data)



# Test if the gender column is a factor.

print(is.factor(input_data$gender))



# Print the gender column so see the levels.

print(input_data$gender)

当我们上面的代码执行时,它产生以下结果:

  height weight gender

1   
132    
48   male

2   
151    
49   male

3   
162    
66 female

4   
139    
53 female

5   
166    
67   male

6   
147    
52 female

7   
122    
40   male

[1] TRUE

[1] male  
male   female female
male   female male
 

Levels: female male

更改级别的顺序

一个因素中的级别的顺序可以通过使用级别的新顺序,再次应用因子函数来改变。

data <-
c("East","West","East","North","North","East","West","West","West","East","North")

# Create the factors

factor_data <- factor(data)

print(factor_data)



# Apply the factor function with required order of the level.

new_order_data <- factor(factor_data,levels =
c("East","West","North"))

print(new_order_data)

当我们上面的代码执行时,它产生以下结果:

 [1] East  West 
East  North North East 
West  West 
West  East  North

Levels: East North West

 [1] East  West 
East  North North East 
West  West 
West  East  North

Levels: East West North

生成因子级别

我们可以通过使用 gl()函数生成因子的级别。它有两个整型输入,表示每个级别有多少水平和多少次。

语法

gl(n, k, labels)

以下是所使用的参数的说明:

    n
是一个整数来给出级别数

    k
是一个整数给出重复的数量

    labels
为所得到的因子级别标签的向量。

示例

v <- gl(3, 4, labels = c("Tampa",
"Seattle","Boston"))

print(v)

当我们上面的代码执行时,它产生以下结果:

Tampa  
Tampa  
Tampa  
Tampa   Seattle Seattle Seattle
Seattle Boston

[10] Boston  Boston  Boston

Levels: Tampa Seattle Boston

R语言因子的更多相关文章

  1. R语言因子排序

    画图的时候,排序是个很重要的技巧,比如有时候会看下基因组每条染色体上的SNP的标记数量,这个时候直接做条形图是一种比较直观的方法,下面我们结合实际例子来看下: 在R环境下之际构建一个数据框,一列染色体 ...

  2. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  3. R语言学习笔记:因子

    R语言中的因子就是factor,用来表示分类变量(categorical variables),这类变量不能用来计算而只能用来分类或者计数. 可以排序的因子称为有序因子(ordered factor) ...

  4. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  5. R语言解读一元线性回归模型

    转载自:http://blog.fens.me/r-linear-regression/ 前言 在我们的日常生活中,存在大量的具有相关性的事件,比如大气压和海拔高度,海拔越高大气压强越小:人的身高和体 ...

  6. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  7. R语言实战(二)数据管理

    本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...

  8. R语言实战(一)介绍、数据集与图形初阶

    本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章       R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...

  9. R 语言机器学习同步推进~

    教材就是传说中的机器学习和R语言--中文版,大家可以去图书馆借来看看~~~,例子都是来自书上的 首先介绍一下KNN算法,KNN还好吧,说白了就是一个算距离的公式然后以统计的方式呈现出来,以二维平面为例 ...

随机推荐

  1. PHP--封装干净利落的输出dump()函数

    /** * 打印函数 * */ if (! function_exists ( 'dump' )) { function dump($var, $exit = true) { echo '<pr ...

  2. webService cxf学习

    1.首先去官网下载cxf包 http://archive.apache.org/dist/cxf/ 记住要选.zip结尾 大概40兆的样子 2.把上边的包都放项目里.如果你用的jeecg框架,那它自带 ...

  3. docker启动单节点server模式的consul | Bitdoom

    原文:docker启动单节点server模式的consul | Bitdoom docker启动单节点server模式的consul 2017-09-07 环境:MacOSX, consul_0.9. ...

  4. python中os的常用方法

    1.os模块:os模块在python中包含普遍的操作系统功能,下面列出了一些在os模块中比较有用的部分. os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符 ...

  5. spotbus gradle-qulity-plugiin 多项目bug检查

    https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html https://xvik.github.io/gradle-quality ...

  6. loj2322 「清华集训 2017」Hello world!

    https://loj.ac/problem/2322 先吐槽一下,sb数据毁我青春败我前程. 首先,一个数开根开不了多少次. 当我们把它开到1的时候,我们以后就不需要开他了,我们可以利用并查集跳过他 ...

  7. clientHeight、offsetHeight 区别 笔记

    一张图 说明全部 clientHeight和clientWidth用于描述元素内尺寸,是指元素内容+内边距大小,不包括边框(低版本IE下实际包括).外边距.滚动条部分 offsetHeight和off ...

  8. 学习Python笔记---操作列表

    1.for循环: 编写for循环时,对于用语存储列表中每个值的临时变量,可指定任何名称. 在for循环中,想包含多少行代码都可以,每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次. ...

  9. 洛谷P1877 [HAOI2012]音量调节 [2017年4月计划 动态规划05]

    P1877 [HAOI2012]音量调节 题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面 ...

  10. Linux下安装ssdb

    安装ssdb wget --no-check-certificate https://github.com/ideawu/ssdb/archive/master.zip unzip master cd ...