R|数据处理|因子型数据

本文详细介绍了R语言中因子型数据的处理方法,包括基础函数和forcats包的使用,如更改level标签和顺序。同时探讨了因子型数据在分组计算、统计分析、绘图以及解决标签汇总问题上的应用。还提到了将定序变量转化为哑变量的技巧,并分享了RStudio脚本文件分块索引的实用技巧。
摘要由CSDN通过智能技术生成
640?wx_fmt=gif 作者简介

Dwzb , R语言中文社区专栏作者,厦门大学统计专业学生。

知乎专栏:https://zhuanlan.zhihu.com/Data-AnalysisR 


因子型数据是R语言中非常重要的一种数据类型,主要用于分组。本文主要分为两个部分:怎样用R语言从技术层面上对因子型数据进行处理;因子型数据的用途。前者我们将分别使用基础函数forcats包进行讲述,后者只列出我目前想到的几个方面,以后想到其他的会再往里面补充。

本文目录如下

  • 基础函数

  • forcats包

  • factor的使用

    • 分组计算、统计分析与绘图

    • 一个标签汇总问题

    • 将定序变量转化为哑变量

基础函数

针对因子型数据,我们一般需要用到两种变化

  • 更改level标签名

  • 更改level顺序

我们先使用基础函数实现

(f1 <- factor(c(1,3,5,4,7))) # levels 中只有出现过的
# [1] 1 3 5 4 7
# Levels: 1 3 4 5 7
(f2 <- factor(c(1,3,5,4,7), levels=1:10)) # 指定有哪些levels
# [1] 1 3 5 4 7
# Levels: 1 2 3 4 5 6 7 8 9 10
factor(c(1,3,5,4,7), levels=1:10, labels=letters[1:10]) # 给各个levels命名
# [1] a c e d g
# Levels: a b c d e f g h i j
f2[, drop=T] # 去掉未出现过的levels


# 下面对原有的factor进行变化
# 使用levels函数更改level标签名
levels(f1) # 查看f1的levels有哪些
# [1] "1" "3" "4" "5" "7"
levels(f1)[1] <- "x" # 修改第一个level为x,level和向量内容都跟着改变了
f1
# [1] x 3 5 4 7
# Levels: x 3 4 5 7
levels(f1)[2] <- "x" # 将一二两个level合并成一个x
f1
# [1] x x 5 4 7
# Levels: x 4 5 7
levels(f1)[4] <- "x" # 注意这时改变的是新的f1的第4个,即对应7的level
f1
# [1] x x 5 4 x
# Levels: x 4 5


# 修改levels顺序,经常用于数据框中一列factor的自身变化
(f1 <- factor(c(1,3,5,4,7))) # 默认按照数字大小顺序排列
f1 <- factor(f1, levels=rev(f1)) # 将原来levels颠倒,不改变向量内容
f1
# [1] 1 3 5 4 7
# Levels: 7 4 5 3 1

# 注意下面这种写法
(f1 <- factor(c(1,3,5,4,7))) 
levels(f1) <- rev(levels(f1))
f1
# [1] 7 5 3 4 1
# Levels: 7 5 4 3 1
# 变化的是标签名,没有真正改变顺序

forcats包更方便地处理factor,其实就是使用基础包中的函数,实现一些特定的功能,封装成一个包,让人们需要用的时候可以简单地调用,不用自己再编写函数了。

其中的函数分为如下几类


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值