有没有办法用单个表达式实现以下目的?:
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
使用单个表达式可以实现相同的复制+重命名操作吗?
答案 0 :(得分:5)
我们可以使用setNames
copy_of_df <- setNames(df, c("P", "Q", "R"))