使用函数式编程用 dplyr 重命名列

标签 r functional-programming dplyr do.call purrr

我想重命名许多列。现在我重写每一列的语句:

df <- data.frame(col1 = 1:4, col2 = c('a', 'b', 'c', 'd'), col3 = rep(1,4))
df %>% 
    rename(col1 = col1_new) %>%
    rename(col2 = col2_new) %>%
    rename(col3 = col3_new)

如何避免重复重命名语句?有使用 R 的函数式编程的解决方案吗?

最佳答案

使用 setNames 比使用 rename 更容易

df %>% 
   setNames(., paste0(names(.), "_new"))
#   col1_new col2_new col3_new
#1        1        a        1
#2        2        b        1
#3        3        c        1
#4        4        d        1

如果没有限制,例如所有步骤都应该在 %>% 内完成,则更简单和通用的方法是

colnames(df) <- paste0(colnames(df), "_new")

关于使用函数式编程用 dplyr 重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330320/

相关文章:

r - 如何在filter_at中使用.data?

r - 满足条件后使用 dplyr 改变以下行

r - 使用 SVM 在 R 中集成

r - 基于列表中元素的子集数据

r - lm 输出的逐列 cbind

javascript - 使用 Ramda 应用参数两次

functional-programming - Occam-pi 是学习编程 LEGO MINDSTORMS & Surveyor Corporation SRV-1 的好语言吗?

r - 根据另一个栅格更改一个栅格中的像元值

functional-programming - 如何使用 S、K 和 I 组合器编写一个空列表?

r - 如何将向量分配给 dplyr mutate 中的多个变量