如何在精确的单词而不是字符上应用gsub

时间:2017-12-09 09:57:03

标签: r gsub

我在R中有一个包含“CountryCode”列的数据框。

我想选择有效的国家/地区,并用“OtherCountry”替换所有其他代码。所以我写道:

Valid_Countries <- c("US", "CA", "JP", "AU", "DE", "IT", "ES", "FR", "UK", "FI", "SE", "NO")

levels(Orders2$CountryCode) <- gsub(paste0("[^", paste(Valid_Countries, collapse=""), "]+"), "OtherCountry", levels(Orders2$CountryCode))

几乎的作品。我的问题是像“BE”这样的国家代码被替换为“OtherCountryE”(我想这是因为“E”包含在Valid_Countries中)。

我怎么说“只考虑整个代码”?

1 个答案:

答案 0 :(得分:1)

这是否有效:

levels(Orders2$CountryCode)[
    !(levels(Orders2$CountryCode) %in% Valid_Countries)
    ] <- "OtherCountry