如何查找列表中的任何字符是否出现在字段中?

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

我有一个数据集 df_ae。 我创建了一个模式列表:

main_modals <- c("X ray Units Static", "X ray Units Mobile", "CT", "Mammography", "MRI", "Nuclear Medicine", "Ultrasound")

我想创建一个新列,如果“模态”列中存在主要模态之一,则给出“优先级”;如果没有主要模态存在,则给出“非优先级”。

我尝试了以下代码:

df_ae$main_modal <- df_ae %>% ifelse(Modality == main_modals, "PRIORITY", "NON-PRIORITY")

但是我收到以下错误:

Error in ifelse(., Modality == main_modals, "PRIORITY", "NON-PRIORITY") : 
  unused argument ("NON-PRIORITY")
r dataframe list character
1个回答
0
投票

您可以使用 dplyr 包和 case_when 中的 mutate 函数。这不是 ifelse 函数的任务。

library(dplyr)

main_modals <- c("X ray Units Static", "X ray Units Mobile", "CT", "Mammography", "MRI", "Nuclear Medicine", "Ultrasound")

df_ae <- df_ae %>%
  mutate(main_modal = case_when(
    any(Modality %in% main_modals) ~ "PRIORITY",
    TRUE ~ "NON-PRIORITY"
  ))
© www.soinside.com 2019 - 2024. All rights reserved.