簡體   English   中英

在 R 中使用字符列替代嵌套 ifelse

[英]Alternate for nested ifelse with character columns in 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')

創建一個 key/val 數據集並使用regex_left_join

keyval <- data.frame(comments = c("jen", "rick"),
                     name = c("Jennifer A", "richard"))
library(fuzzyjoin)
regex_left_join(comdata, keyval, by = "comments")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM