我在 R 中有这些数据:
string_1 = c("newyork 123", "california 123", "washington 123")
string_2 = c("123 red", "123 blue", "123 green")
my_data = data.frame(string_1, string_2)
Run Code Online (Sandbox Code Playgroud)
我想string_2从中“减去” string_1。结果看起来像这样:
"newyork", "california", "washington"
Run Code Online (Sandbox Code Playgroud)
我尝试这样做:
library(tidyverse)
# did not work as planned
> str_remove(string_1, "string_2")
[1] "newyork 123" "california 123" "washington 123"
Run Code Online (Sandbox Code Playgroud)
但这并不是执行“完整”减法。
谢谢你!
您可以拆分两个字符串并找到它们的集合差。
mapply(setdiff, strsplit(string_1, "\\s+"), strsplit(string_2, "\\s+"))
# [1] "newyork" "california" "washington"
Run Code Online (Sandbox Code Playgroud)