【问题标题】:Change column values based on condition usign dplyr [duplicate]使用 dplyr 根据条件更改列值 [重复]
【发布时间】:2022-01-14 11:18:26
【问题描述】:

我有一个名为“df”的数据框,它有两列:“week”和“stock”

当“周”列为 0 时,我想将“股票”列上的所有值更改为 0。

我可以用 base R 做到这一点:

df[df$week == 0, "stock"] = 0

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    使用ifelse()

     df$stock<- ifelse(df$week == 0, 0, df$stock)
    

    dplyr()

    df %>%
      mutate(stock=replace(stock, week==0, 0)) %>%
      as.data.frame()
    

    样本数据:

    df<-data.frame("stock"=c(12334, 3456, 5678, 223232, 456, 678, 567, 1), 
                         "week"=c(0, 1,2,0,4,5,0,7))
    

    【讨论】:

    • 我认为 OP 正在 dplyr 寻求解决方案。
    • 对于dplyr 解决方案,将基本R 的ifelse 替换为if_else
    【解决方案2】:

    我们可以使用replace 将值更改为 0,对应于 week==0。

    df %>% mutate(stock=replace(stock, week==0, 0))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2013-12-27
      • 2022-01-25
      相关资源
      最近更新 更多