【发布时间】:2022-01-07 01:08:09
【问题描述】:
我想替换/删除与我的数据表中其他列(state和city)匹配的字符串(name)部分。
我设法识别了行,例如与城市,像这样:
dt%>% filter(str_detect(name, city)) 但我缺少一种将gsub(或grep)与城市列的行值一起使用的方法。
我知道一种相当手动的方法,例如将所有城市名称存储在一个向量中并将它们输入gsub 会起作用,但它也会错误地删除第 2 行的“达拉斯”。(尽管这对于各州来说是可以管理的,并且可以与 gsub 结合也可以删除“of”。)
数据和期望的输出
dt<- data.table(city = c("arecibo","arecibo","cabo rojo", "new york", "dallas"),
state=c("pr", "pr", "pr", "ny", "tx"),
name=c("frutas of pr arecibo", "dallas frutas of pr", "cabo rojo metal plant", "greens new york", "cowboy shoes dallas tx"),
desired=c("frutas", "dallas frutas", "metal plant", "greens", "cowboy shoes"))
【问题讨论】:
标签: r dplyr data.table