如果Column Contains String,则输入该行的值

nak*_*120 7 string grep r

我有一个如下所示的数据框:

A     B
ABC1  0
DEF2  4
DEG0  4
Run Code Online (Sandbox Code Playgroud)

如何对此进行转换,以便如果一行包含字母"D",则在新列中插入值"yes",否则插入"no".

最终的数据框应如下所示:

A     B    C
ABC1  0    no
DEF2  4    yes
DEG0  4    yes
Run Code Online (Sandbox Code Playgroud)

akr*_*run 13

我们可以grepl通过匹配'A'列中的'D'来返回逻辑索引,然后使用ifelse,将逻辑向量更改为'yes'和'no'

df$C <- ifelse(grepl("D", df$A), "yes", "no")
Run Code Online (Sandbox Code Playgroud)

  • @user5249203 它将是 `library(dplyr);library(stringr);df &lt;- df %&gt;% mutate(C = case_when(str_detect(A, "D") ~ "yes", TRUE ~ "no"))` (3认同)