1

データフレームの特定の列の名前を変更するための次の原則の短いバージョンはありますか?

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
4

4 に答える 4

4

setNames役立つことができます

> setNames(data1, c("hello", "b", "world"))
  hello b world
1     1 1     1
2     2 2     2
3     3 3     3

別の選択肢

> names(data1)[names(data1) %in% c("a", "c")] <- c("hello", "world")
> data1
  hello b world
1     1 1     1
2     2 2     2
3     3 3     3
于 2013-09-19T15:14:10.263 に答える
4

match選択した要素を置換し、使用時に順序を尊重するために使用しますnames<-...

names(data1)[ match( c("a", "c") , names(data1) ) ] <- c("hello", "world")
#  hello b world
#1     1 1     1
#2     2 2     2
#3     3 3     3

名前を変更する順序を入れ替えています...

names(data1)[ match( c("c", "a") , names(data1) ) ] <- c("hello", "world")
#  world b hello
#1     1 1     1
#2     2 2     2
#3     3 3     3
于 2013-09-19T15:24:50.870 に答える
3

plyrパッケージrenameから使用できます。

data1<-data.frame("a"=1:3,"b"=1:3,"c"=1:3)
> rename(data1,c('a' = 'hello','b' = 'world'))
  hello world c
1     1     1 1
2     2     2 2
3     3     3 3
于 2013-09-19T15:16:50.930 に答える