【问题标题】:Need to create new column of converting data into facor levels using mutate and if [duplicate]需要使用 mutate 和 if [重复] 创建将数据转换为因子级别的新列
【发布时间】:2020-03-15 19:43:16
【问题描述】:

cell.data <- cell.data%>%mutate(Overage.factor=ifelse(cell.data$OverageFee==0|cell.data$OverageFee<=5.0,"Overage<5", ifelse(cell.data$OverageFee>5.0|cell.data$OverageFee<=10.0,"ovearge<10", ifelse(cell.data$OverageFee>10.0|cell.data$OverageFee<=15.0,"overage>10","overage>15"))))

仅获取 Overage

【问题讨论】:

  • 如果您希望您的新变量在 OverageFee 介于 5 和 10 之间时具有值“overage| (OR) & (AND)。

标签: r if-statement dplyr


【解决方案1】:

有一个特殊功能可以让这项工作变得更容易!见dplyr::case_when

这是一个例子:

library(tidyverse)

values <- sample(1:99,10)

case_when(values <= 59 ~ 10,
          values == 60 ~ 60,
          values >= 61 ~ 99)

祝你好运

【讨论】:

    【解决方案2】:

    您的代码存在几个问题。没有数据,我无法测试它。你可能想尝试这样的事情:

    cell.data <- cell.data%>%
      mutate(Overage.factor=case_when(
        (OverageFee>=0 & OverageFee<=5.0) ~ "Overage<5",
        (OverageFee>5.0 & OverageFee<=10.0) ~ "ovearge<10",
        (OverageFee>10.0 & OverageFee<=15.0) ~ "overage>10",
        TRUE ~"overage>15"))
    

    【讨论】:

    • 谢谢..它工作了..但是为什么 iflese 没有工作..
    • 因为在你的代码中使用|的逻辑。 &gt;5 | &lt;=10 包含任何值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    相关资源
    最近更新 更多