【问题标题】:Changing data type to a factor with pipe and it's not working使用管道将数据类型更改为因子并且它不起作用
【发布时间】:2018-12-13 16:01:53
【问题描述】:

刚刚开始使用 R。

我正在尝试将季节数据类型更改为因子并将其重新编码为适当的季节。但是我得到一个错误f must be a factor (or character vector)

bikedf%>%
      mutate(season = as.factor(season))%>%
      fct_recode("Spring" = "1", "Summer" = "2", 
      "Fall" = "3", "Winter" = "4")

但是,当我不使用管道时,它可以工作。

bikedf$season = as.factor(bikedf$season)%>%
  fct_recode("Spring" = "1", "Summer" = "2", "Fall" = "3", "Winter" = "4")

我不太明白为什么不使用我的第一个代码。

【问题讨论】:

  • 如果您刚刚开始使用 R,我建议您先学习基本语法,然后再学习打包语法。

标签: r pipe


【解决方案1】:

%>% 应该在mutate 内,而不是在关闭) 之后

bikedf%>%
  mutate(season = as.factor(season)%>%
                   fct_recode("Spring" = "1", "Summer" = "2", 
                      "Fall" = "3", "Winter" = "4"))

【讨论】:

  • 我希望一个名为 fct_recode 的函数会自动强制执行。
  • @42- 我认为你是对的。 fct_recode 实际上会强制执行。 as.factor() 不是必需的。
【解决方案2】:

我认为,如果您使用原始代码,您需要确保指定您想要 fct_recode() 的变量(季节):

bikedf%>%
      mutate(season = as.factor(season))%>%
      fct_recode(season, "Spring" = "1", "Summer" = "2", 
      "Fall" = "3", "Winter" = "4")

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 2021-01-06
    • 1970-01-01
    • 2016-06-09
    • 2013-11-09
    • 1970-01-01
    • 2020-04-12
    • 2017-04-12
    • 2013-01-15
    相关资源
    最近更新 更多