这是我的代码:
A <- c("ruler measure", "measure rulers", "rulers")
B <- c("you can measure things with rulers", "you can measure things with rulers", "you can measure things with rulers")
df <- data.frame(as.character(A), as.character(B))
df_new <- df %>%
mutate(
new_B = str_replace_all(B, A, "")
)我想让这些列看起来像这样:
A B
ruler measure you can things with
measure rulers you can things with
rulers you can measures things with 但是,str_replace_all()似乎只替换了A和B的一个匹配(例如,标尺),而不是另一个匹配(例如度量)。
谢谢你的帮助!!
发布于 2020-03-24 21:43:07
这里有一个基本的R解
df <- within(df,
new_B <- mapply(gsub,
sapply(strsplit(as.character(A),"\\s+"),
function(v) paste0(paste0("\\s+?",v,".*?\\b"),collapse = "|")),
"",
B))这样的话
> df
A B new_B
1 ruler measure you can measure things with rulers you can things with
2 measure rulers you can measures things with rulers you can things with
3 rulers you can measure things with rulers you can measure things with发布于 2020-03-24 20:58:48
我们可以用|替换这个空间
library(dplyr)
library(stringr)
df %>%
mutate(new_B = str_replace_all(B, str_replace(A, " ", "|"), ''))https://stackoverflow.com/questions/60839170
复制相似问题