r - 结合 lapply 和 gsub 将一个值列表替换为另一个值列表

标签 r loops lapply

我目前正在寻找一种方法来简化在数据帧中的列中搜索值向量并将每个值替换为另一个值(也包含在单独的向量中)。我可以为此运行一个 for 循环,但它在 apply 系列中必须是可能的,我只是还没有看到它。对于使用 apply 系列非常陌生,需要帮助。

到目前为止,我已经能够将向量中第一个值的所有实例替换为新向量中的新第一个值,它只是不会迭代超过第一个级别。我希望这是有道理的。这是我的代码:

#standardize tank location
old_tank_list <-  c("7.C.4","7.C.5","7.C.6","7.C.7","7.C.8","7.C.9","7.C.10","7.C.11")
new_tank_list <- c("7.B.3-4","7.C.3-4","7.C.1-2","7.C.5-6","7.C.7-8","7.C.9-10","7.E.9-10","7.C.11-12")


sapply(df_growth$Tank,function(y) gsub(old_tank_list,std_tank_list,y))

Tank 是我尝试替换其中所有这些值的列的名称。我还没有将其分配回来,因为我想先测试一下功能。感谢您提供的任何帮助。

希望这张图片能有所帮助。左边的照片是应用我的函数之前的列。右边的列是后面的。基本上,我只想批量更改文本值。

Before and After

最佳答案

library(dplyr)
df %>%
  mutate(Tank = recode(Tank, !!!setNames(new_tank_list, old_tank_list)))

关于r - 结合 lapply 和 gsub 将一个值列表替换为另一个值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70522236/

相关文章:

mysql - 无法在 Centos 6.7 上安装 R 包 RMySQL

RApache 配置无法识别使用共享库安装的 R

r - 如何使用应用函数(包括 ggplot2)组合多个 R 函数

r - 如何在同一个正则表达式中搜索多个单词?

r - 与 R Shiny App 的自动化交互

r - 在 R shiny 中,如果我们有 3 个级别的列表,如何自动或基于函数 tabPanel?

python - 在循环中调用 extract 时跳过的元素

c++ - 如何迭代容器的前 N ​​个元素?

python - 如何在 python 中拆分具有多个条件的字符串?

r - 为什么使用 purrr::map 而不是 lapply?