我在R中有一个数据帧,其中包含29,000行。我只需要使用名称列表(187个名称)来删除多行。
我的数据集是关于航空公司的,因此我需要从包含200多种航空公司的数据集中删除特定航空公司。我的第一列包含所有航空公司名称,我需要删除这些特定航空公司的整行。
我选择了要通过以下代码删除的所有航空公司名称:transmute(a_name_remove, airline_name)
。这给了我一个要删除的航空公司的所有名称的表,现在我必须从名为airlines的原始数据集中删除该名称列表。
我知道有一种手动执行此操作的方法,例如:mydata[-c("a", "b"), ]
。但是写出每个名字会很忙。
[能否通过给我一种使用列表的方法来帮助我,该列表必须从数据集中向前删除那些行?
我无法自行写下每个名称。我还尝试了此操作:airlines[!(row.names(airlines) %in% c(remove)), ]
,其中将列表“删除”到数据框中并作为矢量,然后使用该代码从我的原始数据集“航空公司”中删除了它,但仍然无法正常工作。
谢谢!
例如,您可以创建一个将%in%取反的函数
'%not_in%' <- Negate('%in%')
因此,根据您的代码,它应该看起来像这样
airlines[row.names(airlines) %not_in% remove, ]
此外,我不建议使用remove作为变量名,因为它是R中的基函数,如果可能的话,请重命名该变量,例如reject_airlines,
airlines[row.names(airlines) %not_in% discard_airlines, ]