要从R中的名称列表中删除多行(要删除的187个名称列表)?

时间:2020-03-30 15:12:29

标签: r dataset filtering rows

我在R中有一个数据帧,其中包含超过29,000行。我只需要使用名称列表(187个名称)来删除多行。

我的数据集是关于航空公司的,因此我需要从包含200多种航空公司的数据集中删除特定航空公司。我的第一列包含所有航空公司名称,我需要删除这些特定航空公司的整行。

我选择了要通过以下代码删除的所有航空公司名称:transmute(a_name_remove, airline_name)。这给了我一个要删除的航空公司的所有名称的表格,现在我必须从名为 airlines 的原始数据集中删除该名称列表。

我知道有一种手动执行此操作的方法,例如:mydata[-c("a", "b"), ]。但是写出每个名字会很忙。

您能否通过给我一种使用列表的方式来帮助我,该列表必须从数据集中向前删除那些行?

我不能自己写下每个名字。 我还尝试了以下操作:airlines[!(row.names(airlines) %in% c(remove)), ],在其中将列表“删除”到数据框中并作为矢量,然后使用该代码将其从原始数据集“航空公司”中删除,仍然无法正常工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以创建一个将%in%取反的函数,例如

'%not_in%' <- Negate('%in%')

因此,根据您的代码,它应该看起来像这样

airlines[row.names(airlines) %not_in% remove, ]

另外,我不建议使用remove作为变量名,因为它是R中的基函数,如果可能,请重命名该变量,例如

airlines[row.names(airlines) %not_in% discard_airlines, ]