我有一个rawdata
包含生态信息的列的数据框。我正在尝试消除该列LatinName
与我已经拥有一些数据的物种向量匹配的所有行,并创建一个仅包含缺少数据的物种的新数据框。所以,我想做的是:
matches <- c("Thunnus thynnus", "Balaenoptera musculus", "Homarus americanus")
# obviously these are a random subset; the real vector has ~16,000 values
rawdata_missing <- rawdata %>% filter(LatinName != "matches")
这不起作用,因为布尔运算符不能应用于字符串。或者我可以做这样的事情:
rawdata_missing <- filter(rawdata, !grepl(matches, LatinName)
这也不起作用,因为!grepl
也不能使用字符串。
我知道有很多方法可以使用IS inrawdata
的行进行子集化,但我想不出一种巧妙的方法来子集化,例如NOT in 。LatinName
matches
rawdata
LatinName
matches
在此先感谢您的帮助!