用dplyr无条件替换数据框中的值

时间:2018-12-05 14:28:43

标签: r dplyr

dplyr的{​​{1}}函数(如果有)是什么?

(即,将数据帧df[df == 2] <- 3中所有2的值替换为3)

使用df,我可以这样做:

dplyr

是否有诸如df %>% mutate_all(funs(ifelse(.==2, 3, .))) 之类的功能?

3 个答案:

答案 0 :(得分:1)

在我看来,这是相当不错的:

df1 <- mtcars[1:4,1:4]
df1 %>% `[<-`(., . < 22, value = "smaller_22")

所以在您的特殊情况下:

df %>% `[<-`(., . == 2, value = 3)

答案 1 :(得分:1)

这可能有效:

df %>% mutate_all(funs(case_when(.==2 ~ 3, TRUE ~ as.numeric(.))))

(不确定为什么要让我将其更改为数字,但是仅在末尾放入.时出现错误...)

答案 2 :(得分:1)

我们也可以使用replace

library(dplyr)
df %>% 
   replace(.< 22, "smaller_22")