简单问题,但我找不到解决方案:如何用特定字符串替换未包含在矢量中的数据帧中的所有元素?
我的数据框如下所示:
ID <- sample(1:8)
Country <- c("USA", "RUS", "Unknown", "Not specified", "???", "XXX", "FRA", "ITA")
myDF <- data.frame(ID, Country)
我还有一个包含所有可能国家/地区代码的向量:
countryCodes <- c("ESP", "FRA", "ITA", "GBR", "DEU", "USA", "RUS", "BRA", "KOR", "BLZ", "BLR", "BEL", "TWN", "CHN")
我想将未包含在countryCodes中的myDF $国家/地区中的所有元素替换为“N / D”。
我正在使用的数据集有大约3000万行,我必须执行几次转换,所以我想保持代码简单,尽可能快。
提前致谢!
答案 0 :(得分:2)
我将data.table
包用于该数据大小和操作:
library(data.table)
setDT(myDF) # convert to data.table
myDF[!J(countryCodes), on = "Country", Country := "N/D"]
setDF(myDF) # ..optional, to convert back to data.frame
这使用非常有效的连接和引用更新。