我试图用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)
答案 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))