2

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

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 函数式编程的解决方案?

4

1 回答 1

7

setNames它比 with更容易使用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")
于 2016-09-05T12:11:13.450 回答