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

如何提取Col2与R中任何Col1匹配的每一行,r,dataset,character,extract,matching,R,Dataset,Character,Extract,Matching,我有一个大数据集,4000个观测值和两个变量。这两个变量是字符,特别是名称。我想删除col2(姓氏)不完全等于col1(名字)字符的任何行 我尝试在%中使用%,但它返回的行在1列上而不是跨列重复 关于如何将一个、两个或多个特定字符串匹配到另一列,然后进行提取,我已经看到了很多建议。然而,在这种情况下,我不知道我想要匹配哪些特定字符串。我希望能为R找到一种方法来为我定位那些跨列匹配 以下是输入df的示例: First Last Joe Weinberg Hilton Alexande

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

我尝试在%中使用%,但它返回的行在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))

库(dplyr)

名称\u to \u drop我们可以使用
子集
如:

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

#   First      Last
#2 Hilton Alexander
#4   Fred    Hilton

我试过了,但结果是把配对的一半去掉了。例如,Fred Hilton仍保留在数据集中,但Hilton Armstrong已被删除。我希望它们都能留在数据集中。谢谢你对我的支持,我对R比较陌生。上面的代码应该删除弗雷德·希尔顿,保留希尔顿·阿姆斯特朗。你确定你复制的正确吗?还有,我现在对你想要什么感到困惑,你想:A)移除所有希尔顿,b)移除弗雷德·希尔顿,但保留希尔顿·阿姆斯特朗,C)移除希尔顿·阿姆斯特朗,保留弗雷德·希尔顿,D)做些其他事情吗?如果我一开始没有正确解释,很抱歉。选项D)做其他事情。我希望代码保留名与姓匹配的行。因此,希尔顿·阿姆斯特朗和弗雷德·阿姆斯特朗将留下来。因此,每当名字与姓氏匹配时,相应的行都会保留在df中。因此,您希望保留至少有一个名字出现在
First.Name
last.Name
中的所有名称吗?如果是这样,您可以这样做:
names\u to_keep%filter(First.Name%在%names\u to_keep中| Last.Name%在%names\u to_keep中)
是的,我想保留至少有一个名称出现在任一列中的所有名称。然而,你所提供的似乎仍然有效。例如,希尔顿·阿姆斯特朗仍被删除,但弗雷德·希尔顿仍被删除。是的,尽管我仍在学习正确的格式,但请告诉我这是否有帮助。如果一个名字列表(按顺序排列的名字、姓氏| First、Last |等)如下所示:希尔顿、亚历山大|德文、布克|蒂、戴维斯|布克、布克|安德烈·华盛顿|弗雷德、希尔顿。。。。我希望输出只显示那些共享共同名字和姓氏的行……例如)希尔顿、亚历山大·德文、布克·布克、布克·弗雷德、希尔顿。这有帮助吗?请使用
dput
添加数据,并显示相同的预期输出,这样可以避免在这些注释中进行冗长的解释。请阅读关于和如何给出答案的信息。我想保留出现在第一栏的第二栏中的名字。当一个名称出现在两列中时,任何反映此“匹配”的行都应保留。匹配:当一行中的姓氏==另一行中的名字时。两个“匹配”行将保留在df中