我正在尝试用不同的字符串替换data.frame中作者姓名的每个实例,但只有当该作者是一个发言者时才这样做。例如,如果我们有数据:
test <- data.frame(author = c("jon", "mike", "sam"), text = rep("jon and mike mike and sam sam sam", 3))
我想在author=="sam"
时用其他文字替换“sam”的每个实例。
我已尝试使用do
和str_replace_all
来执行此操作,但尚未将其付诸实施:
test %>% group_by(author) %>% do(mutate(., text2 = str_replace(.$text, eval(parse(text = .$author)), "yay")))
答案 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