如何提取 Col2 与 R 中任何 Col1 匹配的每一行

How to extract every row where the Col2 matches any Col1 in R

我有一个大型数据集、4,000 个观测值和两个变量。这两个变量是字符,特别是名称。我想删除 col2(姓氏)不完全等于任何 col 1(名字)的字符的所有行。

Here is a look at what the dataset looks like

我试过使用 %in% 但它 returns 行在 1 列而不是跨列重复。

我看到很多关于如何将一个或两个或几个特定字符串匹配到另一列然后提取的建议。但是,在这种情况下,我不确切知道我想要匹配哪些特定字符串。我希望找到一种方法让 R 为我找到那些跨列匹配项。

这里是一个示例输入 df:

First  Last 

Joe    Weinberg
Hilton Alexander
Tom    Marshall
Fred   Hilton

我希望输出 df 看起来像这样:

First  Last

Hilton Alexander
Fred   Hilton

如有任何帮助,我们将不胜感激

像这样简单的东西怎么样?

library(dplyr)

names_to_drop <- df$First.Name

df <- df %>%
   filter(!(Last.Name %in% names_to_drop))

我们可以像这样使用 subset

subset(df, First %in% Last | Last %in% First)

#   First      Last
#2 Hilton Alexander
#4   Fred    Hilton