改变不等于某些字符串的值

时间:2017-04-29 16:08:12

标签: r

我有一个包含Android,Linux,Windows,iOS等值的变量。

我希望保持与Android,Windows和iOS相等的值,但其他值应更改为"其他"。

我觉得这很容易,我试着用gsub()来做这件事,但我没有找到解决方案。

1 个答案:

答案 0 :(得分:1)

我们可以使用grepl

v1[!grepl("\\b(Android|Linux|Windows|iOS)\\b", v1) & !is.na(v1)] <- "Others"

如果不是部分匹配,我们也可以使用%in%

v2[!v2 %in% c("Android", "Linux", "Windows", "iOS") & !is.na(v2)] <- "Others"

数据

v1 <- c("Android phone", "Linux OS", "Windows OS", "A", "iOS", "B", NA)
v2 <- c("Android", "Linux", "Windows", "A", "iOS", "B", NA)