【发布时间】:2022-11-21 05:18:54
【问题描述】:
我目前正在对在线论坛进行一些研究。我有一个包含数千个帖子的数据库,当提到某个词时,我想在特定帖子(这是我的数据集中的一个观察)上创建一个二进制变量。
我想看看发帖者什么时候说孤独,所以我想出了下面的代码,但是当我使用ignore_case = T时总是报错。
library(dplyr)
library(string)
dataset <- dataset %>%
mutate(loneliness = ifelse(str_detect(text,"loneliness|blackpilled|lonely"), 1, 0, ignore_case = TRUE))
我也试过:
mutate(loneliness = ifelse(
str_detect(dataset$text, regex("loneliness|blackpilled|black pill|lonely", ignore_case = TRUE))))
使用它我得到这个错误:缺少参数“no”,没有默认值。
我的代码中缺少什么它不起作用?
【问题讨论】:
-
如果您查看
str_detect帮助页面,您会发现它没有ignore_case参数。 (自 2015 年 1.0 版以来就没有了)。您可以使用具有ignore.case的基础grepl,或者您可以使用stringI::strI_detect(),它允许您使用opts_regex传递正则表达式参数,或者使用stringr可以将您的模式包装在regex()中,它确实使用ignore_case。但是ifelse需要 3 个参数,condition、yes和no,并且你调用它的条件只有你需要, 1, 0。