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. 微信小程序之组件的集合(六)

    这个将是最后一篇关于小程序的记录了,课程接近尾声,最后一个是关于用户的page页面,看看这个页面中有哪些值得学习的地方! 一.page中my开发 这个主要是展示用户喜欢的杂志,以及用户的信息,需要创建 ...

  2. HZOI2019 星际旅行 欧拉路

    题目大意:https://www.cnblogs.com/Juve/articles/11207540.html—————————> 题解:网上都是一句话题解:将所有的边拆成两条,问题变成去掉两 ...

  3. Python3.5 安装 & hello world

    1.下载安装python https://www.python.org/downloads/release/python-364/ 2.安装成功运行 python shell 3.或者cmd => ...

  4. leyou_04_vue.js的ajax请求方式

    1.异步查询数据,自然是通过ajax查询,大家首先想起的肯定是jQuery.但jQuery与MVVM的思想不吻合,而且ajax只是jQuery的一小部分.因此不可能为了发起ajax请求而去引用这么大的 ...

  5. linux管道和tee命令

    ps -ef | grep docker 等价于 ps -ef &> >(grep docker) cat a.log | tee b.txt 等价于 cat a.log & ...

  6. 移动端自动化测试Appium 从入门到项目实战Python版

    移动端自动化测试Appium 从入门到项目实战Python版  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课 ...

  7. Alpha通道是什么意思,和rgb通道有什么区别

    Alpha通道是什么意思,和rgb通道有什么区别 Alpha通道: 阿尔法通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明.不透明和半透明区域,其中白表示不透明,黑表示 ...

  8. centos7.6 安装jdk1.8

    1. 下载 jdk-8u211-linux-x64.tar.gz文件. 2. 创建/opt/soft目录,# cd /opt, # mkdir soft, #tar -zxvf  jdk-8u211- ...

  9. 读书笔记--Head First 设计模式 目录

    1.设计模式入门 2.观察者模式 3.装饰者模式 4.工厂模式 5.单件模式 6.命令模式 7.适配器模式与外观模式 8.模板方法模式 9.迭代器与组合模式 10.状态模式 11.代理模式 12.复合 ...

  10. Django--创建

    软件开发架构: c/s架构 客户端 服务端 b/s架构 浏览器 服务端 本质:b/s架构也是c/s架构 HTTP协议 超文本传输协议:规定了客户端与服务端之间消息传输的格式 四个特性: 1.基于TCP ...