替换整个数据框中的值

8
在基础的R语言中,我可以使用以下代码来删除/替换数据框中的值(例如,所有的NAs或大于0.99的值)。
df[df > 0.99] <- NA
df[is.na(df)] <- 0L

有没有一种使用tidyverse中的dplyr执行类似操作的方法?
1个回答

12
您可以使用replacemutate_all一起使用:
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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接