[R] transformation of data.frame

Søren Højsgaard Soren.Hojsgaard at agrsci.dk
Thu Jul 8 11:09:49 CEST 2010


Like this?

> library(doBy)
> (ddd <- read.table("foo.txt",header=T))
     ID  gen
1 42787 gen2
2 16070 gen2
3 16070 gen3
4  7409 Gen1
5  7409 gen3
6  6511 gen2
7  6417 gen3
8 16070 gen4
9  6511 gen4
> aa<-lapplyBy(~ID, data=ddd,
+   FUN=function(uu){
+   list(uu$ID[1], paste(uu$gen, collapse=":"))
+ })
> 
> do.call(rbind,aa)
      [,1]  [,2]            
42787 42787 "gen2"          
16070 16070 "gen2:gen3:gen4"
7409  7409  "Gen1:gen3"     
6511  6511  "gen2:gen4"     
6417  6417  "gen3"

Regards
Søren





-----Oprindelig meddelelse-----
Fra: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] På vegne af Assa Yeroslaviz
Sendt: 8. juli 2010 10:45
Til: r-help at stat.math.ethz.ch
Emne: [R] transformation of data.frame

Hello all R users,

I have a problems transforming (or maybe better regrouping) a data.frame.
 I have a big data.frame, which I would like to sum up according to a
specific column.

This is an example of my matrix:
ID    gen
0042787    gen2
0016070    gen2
0016070    gen3
0007409    Gen1
0007409    gen3
0006511    gen2
0006417    gen3
0016070    gen4
0006511    gen4

I want to rearrange the matrix according to column GO, so that it will look
likes that:

GO:0042787     gen2
GO:0016070    gen2  :  gen3  :  gen4
GO:0007409    gen1  :  gen3
GO:0006511    gen2  :  gen4
GO:0006417    gen3

I've tried it with the package doBy (lapplyBy and paste) but it just doesn't
work out.

I will be very happy for any suggestions you might have to help me.

Thanks

Assa

	[[alternative HTML version deleted]]

______________________________________________
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