我的 df 有一个评论栏,我需要使用关键字在评论中搜索多个名称(他的评论有很多不相关的信息,不一定提供全名) - 可以使用嵌套的 ifelse 来完成此操作,但有嵌套限制为 50 个,我的列表已增长到超过 200 个名称,因此代码看起来非常乏味,我不想每次都编辑代码(相反,我想上传包含名称列表和关键搜索的 excel条款)
我目前正在使用此声明 - 这应该可以清楚地理解相关列包含的内容
comdata$name <- ifelse(grepl('jen',comdata$comments),'Jennifer A',
ifelse(grepl('rick',final_DM$comments) | grepl('richard',final_DM$comments) ,'richard',
ifelse(grepl('summ',comdata$comments),'Summer','Others'))))
如果我创建名称和可能的“关键”搜索词列表,是否可以通过循环或其他方式来执行此操作? 基本上我需要正确的语法来编写下面的代码 - 这只是为 comdata$name 中的大多数行提供了其他内容:
comdata$name< - ifelse(comdata$comments %like% name_list$Key.1, name_list$FullName, 'Other')
最佳答案
创建键/值数据集并使用regex_left_join
keyval <- data.frame(comments = c("jen", "rick"),
name = c("Jennifer A", "richard"))
library(fuzzyjoin)
regex_left_join(comdata, keyval, by = "comments")
关于r - R 中嵌套 ifelse 与字符列的替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68293348/