如何用正则表达式批量去除数据集变量名中的数字1/2?
批量统一数据集变量名
我有两个各包含约100个变量的数据集,变量名仅存在细微差异:数据集1的变量名为CHILD1xxx、child1xxx,数据集2的变量名为CHILD2xxx、child2xxx。希望系统性地去掉变量名中的数字(即1或2),将其统一为CHILDxxx或childxxx。考虑使用str_replace或str_replace_all函数,但不确定匹配该规则的正则表达式写法,寻求专业指点。
最终解决代码(2022年11月28日更新)
经@Josh White建议,可使用以下代码批量修改数据集的变量名:
colnames(DATASET) <- gsub("^(child)\\d+(.*)", "\\1\\2", colnames(DATASET), ignore.case = TRUE)
代码说明:
^(child):匹配以child开头的字符串(ignore.case = TRUE参数忽略大小写,因此CHILD开头的变量名也会被匹配)\\d+:匹配1个或多个连续数字(对应变量名中的1或2)(.*):匹配数字之后的剩余所有字符\\1\\2:将匹配结果替换为第一捕获组(child/CHILD)加第二捕获组(数字后的剩余字符),以此去掉中间的数字
内容的提问来源于stack exchange,提问作者Ran Yan
相关产品推荐
相关产品推荐

