try this:
colnames(df)<-df_names[1:ncol(df),"name"]
On Sun, Dec 23, 2012 at 8:41 PM, radhi wrote:
> Hi, I've got a dataframe having a code as column name. Addtionally I have
> another dataframe with a two columns (and lots of rows), the first
> containing the code and the second some Text (real
HI,
You can also try this:
df <- data.frame(A=(1:10),B=(1:10),C=(1:10))
df_names <- data.frame(code=c("A","B","D","E","C"),name=c("Col A","Col B","Col
D","Col E","Col C"))
names(df)<-df_names$name[match(names(df),df_names$code)]
A.K.
- Original Message -
From: Johannes Radinger
To: r
HI,
Try this:
names(df)<-df_names$name[df_names$code%in%names(df)]
head(df,2)
# Col A Col B Col C
#1 1 1 1
#2 2 2 2
A.K.
- Original Message -
From: Johannes Radinger
To: r-help@r-project.org
Cc:
Sent: Tuesday, December 11, 2012 5:55 AM
Subject: [R] Renaming
Hi,
thank you so much, that works perfectly. I used
the first suggestion by Anthony (names( df ) <- df_names[ match(
names( df ) , df_names[ , 'code' ] ) , 'name' ]).
Thank you for the hint about ?match... that was the function I was
looking for, makes comparing vectors very easy.
best,
/Johannes
df <- data.frame(A=(1:10),B=(1:10),C=(1:10))
# my changes to show that order doesn't matter
df_names <- data.frame(code=c("C","A","D","E","B"),name=c("Col C","Col
A","Col D","Col E","Col B"))
names( df ) <- df_names[ match( names( df ) , df_names[ , 'code' ] ) ,
'name' ]
for more detail see
?mat
5 matches
Mail list logo