在 R 中对除两个之外的所有观测值进行子集化

Subsetting all observations except two in R

我有一个名为 Country 的变量,具有以下观察结果:

"AUS","AUT","BEL","BRA","BGR","CAN","CHN","CYP","CZE","DNK","EST","FIN","FRA","DEU", "GRC","HUN","IND","IDN","IRL","ITA","JPN","KOR","LVA", "LTU","LUX","MLT","MEX","NLD", "POL","PRT","ROU","RUS","SVK","SVN","ESP","SWE","TWN","TUR","GBR","USA"

我想进行子集化,以便删除 Country == LUX|MLT 处的所有观察值。

我试过了(比较乱):

mydata <- subset(mydata, Country == c("AUS","AUT","BEL","BRA","BGR","CAN","CHN","CYP","CZE","DNK","EST","FIN","FRA","DEU", "GRC","HUN","IND","IDN","IRL","ITA","JPN","KOR","LVA", "LTU","MEX","NLD", "POL","PRT","ROU","RUS","SVK","SVN","ESP","SWE","TWN","TUR","GBR","USA"))) 

但不幸的是我收到了错误信息:

Warning messages:
1: In is.na(e1) | is.na(e2) :
  longer object length is not a multiple of shorter object length
2: In `==.default`(Country, c("AUS", "AUT", "BEL", "BRA", "BGR", "CAN",:
  longer object length is not a multiple of shorter object length

尝试使用 %in% 而不是 ====假设两边等长(或者一侧可以回收)。

mydata <- subset(mydata, Country %in% c("AUS",...,"USA")))

这是我的解决方案。我使用 grep 函数。

data <- Country[-grep("LUX|MLT", Country)]