向以数字 R 结尾的列名称添加一个字符串
Add a string to column names ending with digits R
我的数据是这样的:
df <- tibble(Date = c("2020-10-01", "2020-10-02", "2020-10-03", "2020-10-04", "2020-10-05"),
Department = c("blue", "green", "yellow" ,"red", "purple"),
Covid_10 = rnorm(5),
Covid_12 = rnorm(5)
)
我想创建一个函数,将字符串 "_peak" 添加到末尾包含 2 位数字的列名称的末尾。例如,在我的数据集中,我有两列,它们的名称末尾有 2 个数字(Covid_10 和 Covid_12)。
我希望列名看起来像这样 "Covid_10_peak"。所以字符串“_peak”被粘贴到列名的末尾。我希望这仅适用于末尾有 2 位数字的列名。
其他末尾没有数字(日期、部门)的列名称应保持不变。
希望这是有道理的。
非常感谢!
我们可以使用 rename_with
:
library(dplyr)
df %>% rename_with(~paste0(., '_peak'), matches('\d{2}$'))
# Date Department Covid_10_peak Covid_12_peak
# <chr> <chr> <dbl> <dbl>
#1 2020-10-01 blue 1.93 2.26
#2 2020-10-02 green -1.08 0.985
#3 2020-10-03 yellow 0.0394 1.22
#4 2020-10-04 red -1.81 -0.303
#5 2020-10-05 purple 0.605 0.0165
或以 R 为基数 -
cols <- grep('\d{2}$', names(df))
names(df)[cols] <- paste0(names(df)[cols], '_peak')
df
我的数据是这样的:
df <- tibble(Date = c("2020-10-01", "2020-10-02", "2020-10-03", "2020-10-04", "2020-10-05"),
Department = c("blue", "green", "yellow" ,"red", "purple"),
Covid_10 = rnorm(5),
Covid_12 = rnorm(5)
)
我想创建一个函数,将字符串 "_peak" 添加到末尾包含 2 位数字的列名称的末尾。例如,在我的数据集中,我有两列,它们的名称末尾有 2 个数字(Covid_10 和 Covid_12)。
我希望列名看起来像这样 "Covid_10_peak"。所以字符串“_peak”被粘贴到列名的末尾。我希望这仅适用于末尾有 2 位数字的列名。
其他末尾没有数字(日期、部门)的列名称应保持不变。
希望这是有道理的。
非常感谢!
我们可以使用 rename_with
:
library(dplyr)
df %>% rename_with(~paste0(., '_peak'), matches('\d{2}$'))
# Date Department Covid_10_peak Covid_12_peak
# <chr> <chr> <dbl> <dbl>
#1 2020-10-01 blue 1.93 2.26
#2 2020-10-02 green -1.08 0.985
#3 2020-10-03 yellow 0.0394 1.22
#4 2020-10-04 red -1.81 -0.303
#5 2020-10-05 purple 0.605 0.0165
或以 R 为基数 -
cols <- grep('\d{2}$', names(df))
names(df)[cols] <- paste0(names(df)[cols], '_peak')
df