R 通过搜索文本中是否出现字符串来创建二进制列

R 通过搜索文本中是否出现字符串来创建二进制列,r,R,我有一个数据框,有4列,其中一列包含文本(Engi_log),如果没有段落,实际上是注释。我想要的是创建一个特定的列,如果其中出现特定的单词,则标记为1,否则标记为0。 我使用了下面的代码,但仍然不起作用: library(dplyr) output <- mydata %>% dplyr::mutate( player_mike = ifelse(Engi_log == "redo", 1, 0) ) 库(dplyr) 产量% dplyr::突变( player\u mi

我有一个数据框,有4列,其中一列包含文本(Engi_log),如果没有段落,实际上是注释。我想要的是创建一个特定的列,如果其中出现特定的单词,则标记为1,否则标记为0。 我使用了下面的代码,但仍然不起作用:

  library(dplyr)
 output <- mydata %>%
 dplyr::mutate(
player_mike = ifelse(Engi_log == "redo", 1, 0)
)
库(dplyr)
产量%
dplyr::突变(
player\u mike=ifelse(Engi\u log==“重做”,1,0)
)

您不能使用
=
。您需要
grepl
。也不需要
ifelse
,即

...mutate(player_mike = as.integer(grepl('redo', Engi_log)))

正如@Gregor所指出的,我们不需要通过
grepl
的正则表达式引擎,因此在
grepl
中添加
fixed=TRUE
将提高效率

推荐
fixed=TRUE
用于
grepl
,因为不需要正则表达式。我总是忘记固定部分。谢谢:)提高效率很好,但是使用
fixed=TRUE
的另一个重要原因是防止bug,特别是对于不熟悉regex的用户。如果OP的下一次搜索碰巧包含一个特殊字符,他们可能会非常困惑。