首页 > 解决方案 > 替换 R-Tibble 的列名中的模式

问题描述

我正在尝试更新 RMD 文档中 tibble 中的 23 个列名,它们都遵循相同的模式(1999-05、2000-05 等)。我正在尝试删除“-05”,所以它只是表示年份。当我尝试使用gsub("-05"), "")时,它告诉我我错过了一个论点。当我添加任何东西作为第三个参数时,它会将我的 tibble 变成一组值。

我也尝试过 <- str_remove_all('-05', ''),它返回不支持该模式。

有什么建议么??

标签: rrename

解决方案


听起来您已经在使用 dplyr:使用 dplyr,您可以使用 dplyrrename_all从所有列中删除相同的字符串,或rename_at重命名列的子集(在下面的代码中,它是包含 2000 的任何列)。

library(dplyr)

df <- tibble(`1999-05` = NA, `2000-05` = NA, `2001-05` = NA)

df %>%
    rename_all(function(x) gsub("-05$", "", x))

df %>%
    rename_at(vars(contains("2000")), function(x) gsub("-05$", "", x))

推荐阅读