在 r 中使用 rename_at 从列名中删除后缀

标签 r dplyr tidyverse rename suffix

我有一个包含许多列以相同后缀结尾的数据框,我想使用 rename_at() 将它们全部删除,但我无法弄清楚。

library(tidyverse)

my_df <- tibble(id = c(1, 2), 
jan_real = c(8, 10),
feb_real = c(9, 10),
mar_real = c(1, 11))

desired_df <- tibble(id = c(1, 2), 
jan = c(8, 10),
feb = c(9, 10),
mar = c(1, 11))

最佳答案

您现在应该使用 rename_with()取代了 rename_at()来自 dplyr 1.0.0 :

library(dplyr)

my_df %>%
  rename_with(~ sub("_real$", "", .x), everything())

# A tibble: 2 x 4
     id   jan   feb   mar
  <dbl> <dbl> <dbl> <dbl>
1     1     8     9     1
2     2    10    10    11
使用 rename_at() :
my_df %>%
  rename_at(vars(everything()), ~ sub("_real$", "", .x))

关于在 r 中使用 rename_at 从列名中删除后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63696486/

相关文章:

R - 如何在 R 中输出部分着色的字符串?

r - 在 rlang 表达式的准引用中使用预先存在的字符向量

r - mutate_impl(.data, dots) 中的错误 : Evaluation error: Only year, Date 类索引允许季度、月、周和日期间

r - 将多列转换为宽格式

r - 过滤器在 dplyr 中无法正常工作(找不到对象)

r - 创建函数时出错: 'recursive indexing failed'

r - 我可以假设总是可以在 R 中打开 pdf NULL 设备吗?

r - 使用 lpSolve 在 R 中进行线性规划消除约束

r - 在 R-Studio 中使用 Lattice panel.identify

r - 与dplyr的分组关联(仅在控制台上工作)