使用group_by按组替换不同的字符串

时间:2017-09-24 03:20:05

标签: r dplyr

我正在尝试用不同的字符串替换data.frame中作者姓名的每个实例,但只有当该作者是一个发言者时才这样做。例如,如果我们有数据:

test <- data.frame(author = c("jon", "mike", "sam"), text = rep("jon and mike mike and sam sam sam", 3))

我想在author=="sam"时用其他文字替换“sam”的每个实例。

我已尝试使用dostr_replace_all来执行此操作,但尚未将其付诸实施:

test %>% group_by(author) %>% do(mutate(., text2 = str_replace(.$text, eval(parse(text = .$author)), "yay")))

1 个答案:

答案 0 :(得分:2)

str_replace_all 通过字符串,模式和替换进行矢量化。(请参阅?str_replace_all),因此您只需将author列用作pattern }:

test %>% mutate(new_text = str_replace_all(text, author, 'yay'))

#  author                              text                          new_text
#1    jon jon and mike mike and sam sam sam yay and mike mike and sam sam sam
#2   mike jon and mike mike and sam sam sam   jon and yay yay and sam sam sam
#3    sam jon and mike mike and sam sam sam jon and mike mike and yay yay yay