对于重命名数据框的某些列的下一个原则,是否有更短的版本?
data1<-data.frame("a"=1:3,"b"=1:3,"c"=1:3)
data1Names<-names(data1)
data1Names[data1Names=="a"]<-"hello"
data1Names[data1Names=="c"]<-"world"
names(data1)<-data1Names
Run Code Online (Sandbox Code Playgroud)
该data.table软件包具有可以使用的setnames功能data.frames
library(data.table)
data1<-data.frame("a"=1:3,"b"=1:3,"c"=1:3)
#setnames(data1, "a", "hello")
#setnames(data1, "c", "world")
# or in one step
setnames(data1, c("a", "c"), c("hello", "world"))
data1
# hello b world
#1 1 1 1
#2 2 2 2
#3 3 3 3
Run Code Online (Sandbox Code Playgroud)
到目前为止,所有的答案都会复制一份data.frame. setnames它具有额外的好处,它可以通过引用更改名称,而无需复制data.frame.