更改字符向量的选定元素

Kla*_*aus 1 r dataframe

对于重命名数据框的某些列的下一个原则,是否有更短的版本?

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)

GSe*_*See 5

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.