R语言:某列值批量替换(dplyr)

现假定有数据框df,如下所示:

1. 我们想把B列的4、5、6全部替换为ActiveB列其他数字全部替换为repressed,则可以使用如下命令:

library(dplyr)
df <- data.frame(A = rep(1:5,2), B = rep(4:8,2), C = rep(11:15,2))
df=df %>% mutate(B=case_when(B == "4" ~ "Active",
                         B == "5" ~ "Active",
                         B == "6" ~ "Active",
                         B == "7" ~ "repressed",
                         B == "8" ~ "repressed",
                         TRUE ~ NA_character_))

效果如下:

2. 如果不想在原先列的基础上修改,则可以使用如下命令:

library(dplyr)
df <- data.frame(A = rep(1:5,2), B = rep(4:8,2), C = rep(11:15,2))
df=df %>%  mutate(change_group = if_else(B == "4" | B == "5"| B == "6",true = "Active",false = "repressed"))

效果如下:

posted @ 2022-05-12 16:08  橙子牛奶糖  阅读(6661)  评论(0编辑  收藏  举报