如何在 R 中基于特定术语词典创建二元变量

问题描述 投票:0回答:1

我希望获得有关根据文本数据中是否出现特定术语词典在 R 中创建二进制变量的帮助。我目前有一个数据框,其中其中一列(文本)包含我有兴趣分析的不同文本。我想分析围绕动物的文本是否出现在这些列中(编码为1),或者是否没有出现围绕动物的文本(编码为0)。

我已经创建了一个“动物”字典(animals_dict)(其中包含三个术语“猫”、“狗”和“鱼”)。本质上,我想创建一个新变量(data_zoo$animals),它指示任何文本是否包含动物字典的提及(1)或没有(0)。

我尝试编写代码,但不断出现错误。这是我到目前为止所拥有的:

data_zoo <- mutate(data_zoo, data_zoo$animals = if_else(data_zoo$text=="animals_dict", 1, 0))

我需要帮助获取创建此变量的适当语法。

r dictionary variables text binary
1个回答
0
投票
animals <- c("cat", "dog", "fish")

data_zoo <- data.frame(text = c("The dog barks", "Bored catfish", "Phish"))

data_zoo |>
  dplyr::mutate(animals = +stringr::str_detect(text, paste(animals, collapse = "|")))

           text animals
1 The dog barks       1
2 Bored catfish       1
3         Phish       0
© www.soinside.com 2019 - 2024. All rights reserved.