R语言批量修改带high_/low_前缀的命名数值向量取值
实现方案
直接用R基础函数做前缀匹配后批量赋值即可,无需加载额外第三方包,代码如下:
# 构造原始命名向量 vec <- c(high_X17 = 3, high_X18 = 4, high_X19 = 5, high_X20 = 3, high_X21 = 1, high_X22 = 1, high_X23 = 2, high_X24 = 2, low_X25 = 6, low_X26 = 4, low_X27 = 6, low_X28 = 5, low_X29 = 2, low_X30 = 1, low_X31 = 1, low_X32 = 2) # 匹配所有名称以high_开头的元素,统一赋值为1 vec[grepl("^high_", names(vec))] <- 1 # 匹配所有名称以low_开头的元素,统一赋值为2 vec[grepl("^low_", names(vec))] <- 2 # 打印验证结果 vec
代码中grepl()里的^是正则表达式语法,用于限定匹配字符串的开头,避免误匹配到名称中间出现对应字符的元素,逻辑更严谨。运行代码后输出的结果和你给出的预期完全一致。
内容的提问来源于stack exchange,提问作者giegie
相关产品推荐
相关产品推荐

