首页 > 解决方案 > 将变量重新编码为 R 中带有级别名称的因子

问题描述

使用我的数据集bikeshare,我想将可变季节重新编码为具有有意义的级别名称(即“冬季”、“春季”、“夏季”、“秋季”)的因素,以春季作为基线级别。

这是我的尝试:

bikeshare <- bikeshare %>%
mutate(season = factor(c(1 = "winter", 
                      2 = "spring", 
                      3 = "summer", 
                      4 = "fall")))    

这是我得到的错误:

Error in UseMethod("mutate_") : no applicable method for 'mutate_' applied 
to an object of class "factor"

我会很感激任何帮助,我是初学者。

标签: rdataframedplyrr-factor

解决方案


另一种选择是在labelled包的帮助下标记整数级别。所以它们仍然是整数,但标签作为元数据。如果您想在任何时候将标记的整数转换为因子,您可以使用该to_factor函数来实现。

library("tidyverse")
library("labelled")

labels <- c(
  "winter" = 1,
  "spring" = 2,
  "summer" = 3,
  "fall" = 4)

bikeshare <-
  tibble(season = 1:4) %>%
  mutate(season = labelled(season, labels)) %>%
  mutate(seasonF = to_factor(season))
bikeshare
#> # A tibble: 4 x 2
#>       season seasonF
#>    <int+lbl> <fct>  
#> 1 1 [winter] winter 
#> 2 2 [spring] spring 
#> 3 3 [summer] summer 
#> 4 4 [fall]   fall

reprex 包(v0.2.1)于 2019 年 3 月 3 日创建


推荐阅读