【发布时间】:2024-01-09 22:20:01
【问题描述】:
我想根据数据框中另一列中的字符串创建一个新列。使用case_when 和grepl 如果字符串包含value1 或value2,我想创建一个新类。但是,不知道怎么写这个“OR”语句?
虚拟示例(不工作):
df <- data.frame(type = "a_m5", "a_m20", "a_5")
df %>%
mutate(modif = case_when(
grepl('_m5'|'_m20', type) ~ 'less', # how to specify here | OR symbol in R?
grepl('_5', type) ~ 'more'))
当然,如果我一一指定语句(工作),它会起作用:
df %>%
mutate(modif = case_when(
grepl('_m5', type) ~ 'less',
grepl('_m20', type) ~ 'less',
grepl('_5', type) ~ 'more'))
但我想知道如何使它成为一条线,因为我有多种选择?也许像chars %in% vector 这样的东西可以在这里工作?
期望的输出:
type modif
1 a_m5 less
2 a_m20 less
3 a_5 more
【问题讨论】: