首页 > 解决方案 > 重命名R中的每月列

问题描述

我有一个月度数据,其中前六列是稳定的,但其余列代表月份并分别命名(称为 01.2019 的列代表 2019 年 1 月,依此类推)。我想更改所有这些每月列的名称(现有的和未来的,因为数据将每月更新),例如上面提到的列“01.2019”将是列“201901”。我已经尝试了几个 gsub() 变体,但结果很差。

标签: r

解决方案


试试下面的正则表达式。

m <- "01.2019"
sub("(\\d{2})\\.(\\d{4})", "\\2\\1", m)
#[1] "201901"

解释。

  1. \\d{2}正好两位数,与月份号匹配。
  2. (\\d{2})第一个捕获组。
  3. \\.字符.,需要转义,因为它是元字符。
  4. \\d{4}正好 4 位数字,与年份匹配。
  5. (\\d{4})第二个捕获组。

然后,在替换模式中,只需交换捕获组,\\2然后是\\1.


推荐阅读