我正在try 在DataFrame上创建一个新列,如果外部向量中存在跨特定列的行的任何值,则指定为TRUE或‘YES’.

vector<-c('a', 'f', 'm')

df

COL1    SR3   SR_op   letter  SR_2
12       y     f       ab      m
76       e     r       cd      t
90       a     b       jk      c 
40       z     f       fg      4
34       u     v       xy      w

我试着这样做:

library(dplyr)

df %>% mutate(across(.cols= starts_with('SR'), ~ case_when(. %in% vector ~ 'Yes')))

我想要得到以下几点:

COL1    SR3   SR_op   letter  SR_2  in_vector
12       y     f       ab      m      Yes
76       e     r       cd      t      NA
90       a     b       jk      c      Yes
40       z     f       fg      4      Yes
34       u     v       xy      w      NA

推荐答案

您要查找的函数是if_any:

library(dplyr)
df |> 
  mutate(in_vector = if_any(starts_with('SR'), ~ .x %in% vector))

#   COL1 SR3 SR_op letter SR_2 in_vector
# 1   12   y     f     ab    m      TRUE
# 2   76   e     r     cd    t     FALSE
# 3   90   a     b     jk    c      TRUE
# 4   40   z     f     fg    4      TRUE
# 5   34   u     v     xy    w     FALSE

R相关问答推荐

r中的stat_difference函数不起作用

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

任意列的欧几里得距离

隐藏e_mark_line的工具提示

我不能在docker中加载sf

如何通过Docker部署我的shiny 应用程序(多个文件)

R s iml包如何处理语法上无效的因子级别?'

多个过滤器内的一个盒子在仪表板Quarto

使用R闪光显示所有数据点作为默认设置

R函数,用于生成伪随机二进制序列,其中同一数字在一行中不出现超过两次

R:从geom_ol()中删除轮廓并导出为pdf

R Select()可以测试不存在的子集列

使用带有OR条件的grepl过滤字符串

基于R中的间隔扩展数据集行

根据另一列中的值和条件查找新列的值

解析嵌套程度极高的地理数据

从线的交点创建面

禁用时,SelecizeInput将变得不透明

在直方图中显示两个变量

汇总数据:在跨越()all_of()Dynamic_list_of_vars=>;所选内容不能有缺失值的汇总()中出错