我有一个df:
^(.)\1+$
df <- data.frame(
x=c("ABC Inc", "DCV", "FGZ", "JH7 j11"),
y=c("ABC - fasjdlkjs", "DCV . (INC) .. kdhkfhksf", "FGZ / qiuwy72gs", "JH7 j11 dhd"),
target=c("fasjdlkjs", "inc kdhkfhksf", "qiuwy gs", "dhd")
)
是x
我希望gsub()y
中x
到""
(空白)中的所有内容,同时删除数字/标点符号。
我想要的输出存储在y
我认为这会奏效,但事实并非如此:
target
编辑:
排序:df <- mutate(target = gsub(pattern=x, replacement="", y))
答案 0 :(得分:3)
这(现在 - 感谢@Frank)转换案例tolower
。下面,s
通过将x
字符串拆分为空格来构建要从x
列进行测试的字符串
df$res <- mapply(function(a, b) {
s <- paste(c(unlist(strsplit(as.character(a)," ")), "[[:punct:]]"), collapse="|")
tolower(gsub("[[:digit:]]+", " ", gsub(s, "", b)))
}, df$x, df$y)
df
# x y target res
# 1 ABC Inc ABC - fasjdlkjs fasjdlkjs fasjdlkjs
# 2 DCV DCV . (INC) .. kdhkfhksf inc kdhkfhksf inc kdhkfhksf
# 3 FGZ FGZ / qiuwy72gs qiuwy gs qiuwy gs
# 4 JH7 j11 JH7 j11 dhd dhd dhd