前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >修改因子水平

修改因子水平

作者头像
生信编程日常
发布2020-06-22 17:22:52
6970
发布2020-06-22 17:22:52
举报

将factor的因子水平进行修改比较方便的包为forcats 测试数据集:forcats::gss_cat 数据集,该数据集是综合社会调查数据的一份抽样。

代码语言:javascript
复制
library(tidyverse)
library(forcats)
gss_cat

gss_cat数据集是由一个 R 包提供的,因为当因子保存在 tibble 中时,其水平不是很容易看到的。查看因子水平的一种方法是使用 count() 函数来直接计算数量。可以看到race有三个level。

代码语言:javascript
复制
      gss_cat %>%
        count(race)
      #> # A tibble: 3 × 2
      #>     race     n
      #>   <fctr> <int>
      #> 1  Other  1959
      #> 2  Black  3129
      #> 3  White 16395

下面将两个level进行合并修改: 修改水平最常用、最强大的工具是 fct_recode()函数,它可以对每个水平进行修改或重新编码。例如, 我们看一下race

代码语言:javascript
复制
gss_cat %>% mutate(race = fct_recode(race,"Black and White" = "Black" ,"Black and White" = "White"))%>% count(race)

#>Other 1959            
#>Black and White   19524   

或者可以使用fct_collapse(),想要合并多个水平,那么可 fct_recode()函数的变体 fct_collapse() 函数更方便。对于每 个新水平,你都可以提供一个包含原水平的向量:

代码语言:javascript
复制
gss_cat %>% mutate(race = fct_collapse(race,"Black and White" = c("Black" ,"White"))) %>% count(race)

#>Other 1959            
#>Black and White   19524   
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档