r - R 中嵌套 ifelse 与字符列的替代

标签 r

我的 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/

相关文章:

r - 使用 := with j in data. 表(未实现功能的解决方法)

R包DARCH深度信念神经网络似乎无法学习 'exclusive or'

r - 应用数据框列分配

将多个文件读入多个数据框

r - 导出data.table并在新行中打印单元格内容

r - ggplot 更改由 x 轴值指定的线条颜色

R:减少功能。钠处理

r - 计算一行中第一个和最后一个观察值之间的差异,其中每行都不同

r - 如何按每个子列表的最大值对列表进行排序?

r tidycensus 下载所有 block 组