r - 使用 purrr::map 在 for 循环中重写向量

标签 r purrr

如何使用 purrr::map() 返回示例的 for 循环的结果:

vct_string <- c("old ccar","new carr", "house", "oold house")

df_correction <- data.frame(
  pattern  = c("ccar", "carr", "oold"),
  replacement = c("car", "car", "old"),
  stringsAsFactors = FALSE
)

for(i in 1:nrow(df_correction)){
  vct_string <- pmap(df_correction, gsub, x = vct_string)[[i]]
}

> vct_string
[1] "old car"   "new car"   "house"     "old house"

最佳答案

实际上,您不需要任何 ReduceMap 函数。只需使用 str_replace_all 它的矢量化

library(stringr)
str_replace_all(vct_string, set_names(df_correction$replacement, df_correction$pattern))

[1] "old car"   "new car"   "house"     "old house"

关于r - 使用 purrr::map 在 for 循环中重写向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68760216/

相关文章:

根据字符串变量对行重新排序

r - dplyr 在 case_when 中用分号分隔

用 map 替换 for 循环?

使用 purrr 重命名多个数据框列

r - 从嵌套列表深处提取命名元素的通用方法

r - ggplot2 - 为数据框的每一列创建一个条形图

r - 识别只有 0 个值的列

r - 列名上的整洁评估映射

r - 使用 purrr 帮助转换大型数据文件

r - R语言中的清除屏幕命令