如何在R/tidyverse中使用模式向量批量匹配数据框多个变量
R tidyverse实现多列匹配生成虚拟变量的方案
你可以直接用dplyr包的across()函数批量处理key1到key30列,一行代码即可完成需求:
步骤1:加载依赖包
library(tidyverse)
步骤2:核心处理代码
result_df <- data_df %>% mutate( # 批量选中key1到key30列进行处理 across( .cols = num_range("key", 1:30), # 精确判断值是否在目标向量中,转换为0/1整数 .fns = ~ as.integer(. %in% my_patterns), # 定义新生成的匹配列名格式 .names = "{.col}_match" ) )
规则说明
- 代码默认空字符串
""、NA值判定为未匹配,赋值为0,符合需求的未匹配赋值规则 - 如果需要调整为模糊匹配、忽略大小写匹配等规则,仅需修改
.fns内的判断逻辑即可
内容的提问来源于stack exchange,提问作者Nelly
相关产品推荐
相关产品推荐

