【问题标题】:replace values throughout a tibble替换整个小标题的值
【发布时间】:2018-04-14 01:47:59
【问题描述】:

在基础 R 中,我可以使用以下代码删除/替换整个数据帧中的值(例如,所有 NA 或大于 0.99 的值)。

df[df > 0.99] <- NA
df[is.na(df)] <- 0L

有没有办法在 tidyverse 中使用 dplyr 执行等效操作?

【问题讨论】:

    标签: r dplyr tidyverse


    【解决方案1】:

    您可以将mutate_allreplace 一起使用:

    df = data.frame(x = c(1.2, 0.4, NA, 0.6), y = c(NA, 0.3, 0.992, 0.5))
    df %>% mutate_all(~ replace(., . > 0.99 | is.na(.), 0))
    #    x   y
    #1 0.0 0.0
    #2 0.4 0.3
    #3 0.0 0.0
    #4 0.6 0.5
    

    或者使用funs:

    df %>% mutate_all(funs(replace(., . > 0.99 | is.na(.), 0)))
    

    如果您只需要将此作为管道的一部分进行集成,replace 方法应该可以工作:

    df %>% replace(. > 0.99 | is.na(.), 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多