[R] Renaming column names according to another dataframe

Johannes Radinger johannesradinger at gmail.com
Tue Dec 11 13:52:36 CET 2012


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

On Tue, Dec 11, 2012 at 1:06 PM, arun <smartpink111 at yahoo.com> wrote:
> 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 <johannesradinger at gmail.com>
> To: r-help at r-project.org
> Cc:
> Sent: Tuesday, December 11, 2012 5:55 AM
> Subject: [R] Renaming column names according to another dataframe
>
> 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 name).
>
> Now I'd like to use the information (pairs of code and name) of the
> second dataframe to rename all the columnnames in the first dataframe.
> How is it possible to achieve that?
>
> Here a small example of the two dataframes:
>
> df <- data.frame(A=(1:10),B=(1:10),C=(1:10))
> df_names <- data.frame(code=c("A","B","C","D","E"),name=c("Col A","Col
> B","Col C","Col D","Col E"))
>
> /j
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list