You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用正则表达式修改DataFrame列名?移除.zip.及之前内容

解决DataFrame列名截取问题

直接给正确的R代码:

colnames(df) <- gsub(".*\\.zip\\.", "", colnames(df))

为什么之前的写法不对?

  • 第一个正则.*\zip/:\z是正则里匹配字符串结尾的元字符,完全不符合需求,还多了个多余的/,根本匹配不到.zip.;而且R里字符串的反斜杠需要双写,单写\z本身语法就有问题。
  • 第二个正则*.zip:*是量词,必须跟在某个字符或组后面,单独写*属于语法错误;就算改成.*\.zip,也只去掉了.zip前面的内容,没处理.zip后面的那个点,最后会得到.name、.region这种带前置点的列名。

正则逻辑说明

.*\\.zip\\.的含义:

  • .*:匹配任意数量的任意字符(贪婪模式,会匹配到最后一个.zip.之前的所有内容,刚好符合你的列名结构)
  • \\.zip\\.:匹配字面量.zip.,因为.在正则里是匹配任意字符的元字符,所以必须用\\转义,R里字符串要额外转义一次反斜杠,所以写两个\\。

内容的提问来源于stack exchange,提问作者Log On

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:15:34