R中两个字符串相减

sta*_*oob 4 string r

我在 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)

但这并不是执行“完整”减法。

  • 有谁知道如何做到这一点?
  • 我应该尝试在 SQL 中使用 ANTI JOIN 来做到这一点吗?

谢谢你!

Dar*_*sai 5

您可以拆分两个字符串并找到它们的集合差。

mapply(setdiff, strsplit(string_1, "\\s+"), strsplit(string_2, "\\s+"))

# [1] "newyork"    "california" "washington"
Run Code Online (Sandbox Code Playgroud)