[R] column wise paste of data.frames

Patrick Burns pburns at pburns.seanet.com
Fri Jul 18 10:22:59 CEST 2008


do.call('paste', c(data.frame(letters, LETTERS),
   list(sep='/')))


Patrick Burns
patrick at burns-stat.com
+44 (0)20 8525 0696
http://www.burns-stat.com
(home of S Poetry and "A Guide for the Unwilling S User")

Sebastian Weber wrote:
> Hi everybody!
>
> I'm sure that I overlook something and feel quite stupid to ask, but I
> have not found an easy solution to the following problem: Take e.g. the
> Orthodont data from the nlme package:
>
>   
>> head(Orthodont)
>>     
> Grouped Data: distance ~ age | Subject
>   distance age Subject  Sex
> 1     26.0   8     M01 Male
> 2     25.0  10     M01 Male
> 3     29.0  12     M01 Male
> 4     31.0  14     M01 Male
> 5     21.5   8     M02 Male
> 6     22.5  10     M02 Male
>
> Suppose now, that I have a vector which contains the names of the
> "meta"-fields in this data-frame:
>
> metaFields <- c("Subject", "Sex")
>
> I now would like to form a new column "ID" which consists of the columns
> in metaFields joined like the following:
>
>   
>> head(Orthodont)
>>     
> Grouped Data: distance ~ age | Subject
>   distance age Subject  Sex  ID
> 1     26.0   8     M01 Male  M01/Male
> 2     25.0  10     M01 Male  M01/Male
> 3     29.0  12     M01 Male  M01/Male
> 4     31.0  14     M01 Male  M01/Male
> 5     21.5   8     M02 Male  M02/Male
> 6     22.5  10     M02 Male  M02/Male
>
> Any paste commands I tried so far failed, e.g.:
>
> Orthodont$ID <- paste(Orthodont[,metaFields], sep="/")
>
> is simply wrong. Ok, I could add the columns within a loop to ID, but
> that is not very elegant. Instead, what I need is a command that in
> effect produces the output of
>
> Orthodont$ID <- paste(Orthodont[,metaFields[1]],    
>                       Orthodont[,metaFields[2]] , sep="/")
>
> There should be some way to do it in R - can someone please enlighten
> me? Thanks a lot in advance.
>
> Greetings,
>
> Sebastian
>
> ______________________________________________
> 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