【问题标题】:dplyr, mutation: error when using "case_when"dplyr,突变:使用“case_when”时出错
【发布时间】:2021-03-18 17:59:10
【问题描述】:

我正在尝试根据我已有的连续工资变量创建一个新的工资组变量。这是我拥有的代码,它在其他类似案例中运行良好:

     df  <-  df %>% mutate(wagegroup = case_when(wage_total < 100 ~ 'below 100 €/m',
    wage_total >= 100 & wage_total <= 546 ~ '100 - 546 €/m', 
    wage_total >= 546,1 & wage_total <= 1000 ~ '565,1 - 1000 €/m', 
    wage_total >= 1000,1 & wage_total <= 1500 ~ '1000,1 - 1500 €/m', 
    wage_total >= 1500,1 & wage_total <= 2000 ~ '1500,1 - 2000 €/m', 
    wage_total >= 2000,1 ~ 'over 2000,1 €/m'))

我得到一个错误代码:

x Case 3 (`wage_total < 100 ~ "below 100 \200/m"`) must be a two-sided formula, not a logical vector.

我想知道这里有什么问题吗?我只是 Rstudio 的初学者,非常感谢您的帮助:)

【问题讨论】:

  • 看起来最后 4 行中出现的 ,1 可能有问题。
  • 为了让我们帮助您,请编辑您的问题以包含reproducible example。例如,要生成最小数据集,您可以使用head()subset() 或索引。然后使用dput() 给我们一些可以立即放入R 的东西。另外,请确保您知道该怎么做when someone answers your question。更多信息可以在 StackOverflow 的help center 找到。谢谢!

标签: r dplyr


【解决方案1】:

您的代码中有一些看似无关的字符。我试图对你想要做的事情做出最好的猜测:

df <- data.frame(wage_total = c(100, 200, 300, 500, 600, 1020, 1038))

df  <-  df %>% mutate(wagegroup = case_when(wage_total < 100 ~ 'below 100 €/m',
                                            wage_total >= 100 & wage_total <= 546 ~ '100 - 546 €/m', 
                                            wage_total >= 546 & wage_total <= 1000 ~ '565 - 1000 €/m', 
                                            wage_total >= 1000 & wage_total <= 1500 ~ '1000 - 1500 €/m', 
                                            wage_total >= 1500 & wage_total <= 2000 ~ '1500 - 2000 €/m', 
                                            wage_total >= 2000 ~ 'over 2000 €/m'))

df
#   wage_total       wagegroup
# 1        100   100 - 546 €/m
# 2        200   100 - 546 €/m
# 3        300   100 - 546 €/m
# 4        500   100 - 546 €/m
# 5        600  565 - 1000 €/m
# 6       1020 1000 - 1500 €/m
# 7       1038 1000 - 1500 €/m

【讨论】:

  • 可以简化 case_when 条件... case_when(wage_total
猜你喜欢
  • 1970-01-01
  • 2021-10-26
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多