如何使用单个表达式复制data.frame和更改列名?

时间:2016-07-01 02:52:30

标签: r

有没有办法用单个表达式实现以下目的?:

copy_of_df <- df
names(copy_of_df) <- c("some", "new", "column", "names", ...)

例如,从下面定义的df开始

> set.seed(0)
> h <- 5
> (df <- data.frame(x = 1, y = 1:h, z = sample(LETTERS[1:3], h, replace = T)))
  x y z
1 1 1 C
2 1 2 A
3 1 3 B
4 1 4 B
5 1 5 C

...我可以复制df并重命名 copy 的列,如下所示:

> copy_of_df <- df
> names(copy_of_df) <- c("P", "Q", "R")
> copy_of_df
  P Q R
1 1 1 C
2 1 2 A
3 1 3 B
4 1 4 B
5 1 5 C

使用单个表达式可以实现相同的复制+重命名操作吗?

1 个答案:

答案 0 :(得分:5)

我们可以使用setNames

copy_of_df <- setNames(df,  c("P", "Q", "R"))