我当前正在手动替换列中的所有值。如果列名包含ABC
或DEF
,我是否可以将列中的所有值替换为0,而无需手动选择列并替换为0?
以下是我的df:
> dput(df)
structure(list(FFF = c(34L, 22L, 22L), ABC_1 = 3:5, DEF_2 = c(2L,
2L, 2L), KKL = c(3L, 2L, 234L)), class = "data.frame", row.names = c(NA,
-3L))
所需输出:
> dput(df2)
structure(list(FFF = c(34L, 22L, 22L), ABC_1 = c(0L, 0L, 0L),
DEF_2 = c(0L, 0L, 0L), KKL = c(3L, 2L, 234L)), class = "data.frame", row.names = c(NA,
-3L))
2条答案
按热度按时间e4yzc0pl1#
这里我们可以使用
mutate_at
并通过vars(matches())
提供列命名模式对于Tarjae提出的观点,在dplyr的最新版本中,下面的内容似乎是首选的,无论哪种方式都是相同的想法。
laximzn52#
碱基R:
使用dplyr:
一般来说:“作用域动词(_if、_at、_all)已被现有动词中
pick()
或across()
的使用所取代...”https://dplyr.tidyverse.org/reference/mutate_all.html