我有一个像这样的数据框:
df = data.frame('name' = c('California parks', 'bear lake', 'beautiful tree house', 'banana plant'), 'extract' = c('parks', 'bear', 'tree', 'plant'))
如何从名称列中删除“提取”列的字符串以获得以下结果:
name_new = California, lake, beautiful house, banana
我怀疑这需要 str_extract
和 lapply
的组合,但我很清楚。
谢谢!
最佳答案
str_remove
或 str_replace
被向量化为 string
和 pattern
。因此,如果我们有两列,只需将这些列“name”、“extract”作为 string
、pattern
传递,以按元素删除“name”列中的子字符串。一旦我们删除了这些子字符串,之前或之后可能会有空格可以删除或替换为 str_replace
和 trimws
(删除前导/滞后空格)
library(dplyr)
library(stringr)
df %>%
mutate(name_new = str_remove(name, extract),
name_new = str_replace_all(trimws(name_new), "\\s{2,}", " "))
# name extract name_new
#1 California parks parks California
#2 bear lake bear lake
#3 beautiful tree house tree beautiful house
#4 banana plant plant banana
关于从 R 中的字符串列中删除字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63587536/