r - 替换 R-Tibble 的列名中的模式
问题描述
我正在尝试更新 RMD 文档中 tibble 中的 23 个列名,它们都遵循相同的模式(1999-05、2000-05 等)。我正在尝试删除“-05”,所以它只是表示年份。当我尝试使用gsub("-05"), "")
时,它告诉我我错过了一个论点。当我添加任何东西作为第三个参数时,它会将我的 tibble 变成一组值。
我也尝试过 <- str_remove_all('-05', '')
,它返回不支持该模式。
有什么建议么??
解决方案
听起来您已经在使用 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))