给出一个数据帧和一个向量
appIds=1,2
我想浏览set.seed(123)
feature <- sample(LETTERS,30,replace = T)
number<-sample(1:100,30, replace = T)
df<-data.frame(feature,number)
rename<-c("N","V","C","E")
,如果存储在df$feature
中的字母与列rename
中的字母匹配,我想将它们重命名为df$feature
。
我很确定必须在某个地方回答过这个问题,尽管我已经寻找了很长时间。
答案 0 :(得分:3)
您可以使用%in%
查找包含rename
的行:
df$feature[df$feature %in% rename] <- "other"
如果df$feature
是factor
并且在级别中不包含other
,则需要在与以下级别交换之前将other
添加到级别:
levels(df$feature) <- unique(c(levels(df$feature), "other"))
或通过以下方式将其投放到character
:
df$feature <- as.character(df$feature)
答案 1 :(得分:1)
使用dplyr
的一个选项:
df %>%
mutate(feature = str_replace(feature, paste(rename, collapse = "|"), "other"))