在R中重新估价,但有违约

在R中重新估价,但有违约,r,regex,plyr,R,Regex,Plyr,我正在使用plyr包中的rewage函数重新分配长字符向量的名称,如下例所示: sites <- c("example1.com","example2.com","facebook.com","google.com","example3.com") replace <- c(facebook.com = "Facebook", google.com = "Google") revalue(sites,replace) # [1] "example1.com" "example2.co

我正在使用
plyr
包中的
rewage
函数重新分配长字符向量的名称,如下例所示:

sites <- c("example1.com","example2.com","facebook.com","google.com","example3.com")
replace <- c(facebook.com = "Facebook", google.com = "Google")
revalue(sites,replace)
# [1] "example1.com" "example2.com" "Facebook"     "Google"       "example3.com"
但我不能花时间将每个站点都包含在我的
replace
向量中。最好的方法是什么

谢谢

这里有一个替代方案

> sites <- gsub("\\.com$", "", sites)
> ifelse(sites %in% c("facebook", "google"), sites, "other")
[1] "other"    "other"    "facebook" "google"   "other"   
>sites-ifelse(站点%in%c(“facebook”、“谷歌”)、站点“其他”)
[1] “其他”“其他”“facebook”“谷歌”“其他”
您可以使用mapvalues()替换多个级别,然后使用Revalues()替换单个级别:

library(dplyr)
library(plyr)
sites %>%
mapvalues(from=c("example1.com", "example2.com", "example3.com"), to=c(rep("other",3))) %>% 
revalue(replace)
谢谢--
ifelse
对我来说非常有用(尽管我仍然需要使用
Revalue
,因为我的替换更加复杂)。
library(dplyr)
library(plyr)
sites %>%
mapvalues(from=c("example1.com", "example2.com", "example3.com"), to=c(rep("other",3))) %>% 
revalue(replace)