如何用另一行中的单词替换一行中的一部分字符串?

时间:2019-07-19 16:01:30

标签: r regex dataframe

我试图用R中数据框同一行的另一列中的单词从一行中填充模板。

以下是我要执行的操作的示例:

x <- data.frame("replacement" = c("two", "ten"), 
"text" = c("we had <replacement> books", "we had <replacement> books"),
"result" = c("we had two books", "we had ten books"))

我尝试使用gsub,但是它代替了所有单词,而不是一个单词:

x$result <- gsub("\\<.+?\\>", x$replacement, x$text)

2 个答案:

答案 0 :(得分:4)

我们可以使用str_replace作为文档(?str_replace)所说的

  

通过字符串,模式和替换进行矢量化。

library(stringr)
library(dplyr)
library(magrittr)
x %<>%
  mutate(result = str_replace(text, "<replacement>", as.character(replacement)))

答案 1 :(得分:2)

使用dplyr,您还可以尝试:

x %>%
 rowwise() %>%
 mutate(result = sub("<replacement>", replacement, text, fixed = TRUE))