如何在具有多个字符串的描述列中搜索县名 - R

How to search for county names in a description column with multiple strings - R

我有一个捐赠数据集,其中有一个名为“描述”的字段,捐赠者在其中描述了他们捐赠礼物的目的。该字段中有多个单词或字符串(有时是一个完整的句子),并且有几行列出了他们希望指定捐赠的特定县。

我想确定该字段中的哪些行中有县名,并以某种方式在新字段中指出。我有一个数据框,其中包含我需要的两个州的县名,但我很难知道哪个代码允许我使用县数据框中的县字段作为在描述字段中识别县名的基础。

我在 R 方面的水平还很低,但我会尝试提供一些示例代码。我有超过 1000 行,所以我需要很长时间才能在字符串中搜索特定的县 - 使用县列表作为我的搜索基础会更有帮助。

`df <- tibble(`Donor Type` = c("Single Donation", "Grant", "Recurring Donation"), Amount = c("10", "50", "100"), Description = c("This is for Person County", "Books for Beaufort County", "Brews for Books"))`

`Donor Type`       Amount Description              
  <chr>              <chr>  <chr>                    
1 Single Donation    10     This is for Person County
2 Grant              50     Books for Beaufort County
3 Recurring Donation 100    Brews for Books

我有一个数据框,其中包含两个州的县名(下面名为 Carolina.Counties)- 我应该使用什么代码在我的捐助者数据框中添加一个列,以指示哪些描述仅限于特定县?我一直在玩弄以下内容 - 但没有得到正确的结果。

Df <- 
  apply(Df, 1, function(x) 
    ifelse(any(Df$Description %in% Carolina.Counties$county), 'yes','no'))

%in% 会寻找完全匹配。您可能需要某种正则表达式匹配,这可以在 grepl.

的帮助下实现
df$result <- ifelse(grepl(paste0(Carolina.Counties$county, collapse = '|'), 
                    df$Description), 'Yes', 'No')

paste0(Carolina.Counties$county, collapse = '|') 将创建一个正则表达式模式来查找所有县。我们在 Description 列中查找此模式,如果存在则分配“是”,否则分配“否”。