如何使用lapply替换列中的多个值?

时间:2019-03-28 00:33:53

标签: r loops dplyr lapply

我正在尝试运行以下代码,将列P内的所有值“ dfb1”替换为1,以将多个值(例如“ dfb2”)替换为2 .....直到“ dfb10”替换为10。 这是代码:

out3 %>%
   mutate(P=replace(P, P=="dfb1", 1))

这是我尝试使用lapply进行迭代的方法:

func2 <- function (k) {
  out3 %>%
    mutate(P=replace(P, P==paste0("dfb", 1:k), k))
  } 

k <-10
lapply(out3, func2)

不幸的是,该代码无法正常工作。我不确定

1 个答案:

答案 0 :(得分:1)

我们可以使用gsub将字符串dfb替换为“”。

library(dplyr)

out3 %>% mutate(P = gsub("dfb", "", P))