[R] Converting a data frame with values into a matrix/
Henrique Dallazuanna
wwwhsd at gmail.com
Wed Mar 12 18:57:12 CET 2008
Try:
xy <- with(xx, tapply(NES, list(Class, Name), paste))
xy[is.na(xy)] <- 1
On 12/03/2008, Srinivas Iyyer <srini_iyyer_bio at yahoo.com> wrote:
> Hi Henrique,
> Thanks for your tip.
>
>
> how can I map xx onto xy (where xy is a matrix I
> created).
>
>
>
> > > > xy
> Mike Carl Gene James Dough
> A 1 1 1 1 1
> C 1 1 1 1 1
> B 1 1 1 1 1
>
>
>
> If I can map xx onto xy, I can have '1' without NAs.
>
> Thanks
> Srini
>
>
>
>
> --- Henrique Dallazuanna <wwwhsd at gmail.com> wrote:
>
> > Perhaps in this case:
> >
> > noquote(with(xx, tapply(NES, list(Class, Name),
> > paste)))
> >
> >
> > On 12/03/2008, Srinivas Iyyer
> > <srini_iyyer_bio at yahoo.com> wrote:
> > > Dear Group,
> > > I have a data frame like the following:
> > >
> > >
> > > x <- c("Mike","A",0.01)
> > > x1 <- c("Carl","A",0.2)
> > > x2 <- c("Gene","C",0.3)
> > > x3 <- c("James","A",-0.3)
> > > x4 <- c("Dough","B",0)
> > > xx <- rbind(x,x1,x2,x3,x4)
> > > colnames(xx)<-c("Name","Class","NES")
> > > xx <-as.data.frame(xx)
> > >
> > > > xx
> > > Name Class NES
> > > x Mike A 0.01
> > > x1 Carl A 0.2
> > > x2 Gene C 0.3
> > > x3 James A -0.3
> > > x4 Dough B 0
> > >
> > >
> > > Now I want to create a matrix with unique xx$Name
> > on
> > > columns and unique xx$Class as rows. I want to
> > fill
> > > my choice of values (in this case 1) if data
> > point not
> > > available.
> > >
> > >
> > > xy <-
> > >
> >
> matrix(1,length(unique(xx$Class)),length(unique(xx[,1])))
> > > colnames(xy)<-unique(xx[,1])
> > > rownames(xy)<-unique(xx$Class)
> > >
> > > > xy
> > > Mike Carl Gene James Dough
> > > A 1 1 1 1 1
> > > C 1 1 1 1 1
> > > B 1 1 1 1 1
> > >
> > >
> > >
> > >
> > >
> > > I would love to have :
> > >
> > > Mike Carl Gene James Dough
> > > A 0.01 0.2 1 -0.3 1
> > > C 1 1 1 0.3 1
> > > B 1 1 1 1 0
> > >
> > >
> > >
> > >
> > > If I am not wrong this is called contigency or
> > > frequeny table.
> > >
> > > I tried xtabs on this.
> > >
> > > > z <- xtabs(NES ~ Name+Class,data=xx)
> > > Error in Summary.factor(4L, na.rm = FALSE) :
> > > sum not meaningful for factors
> > >
> > >
> > > I tried on other data frames, it worked. BUT the
> > > problem is it gives me 0.0000 even a value is not
> > > available for that row and column. So if I have
> > data
> > > -0.00 it is considered 0.
> > >
> > > I tried. drop.unused.levels = T, I did not get
> > what I
> > > want. I want all row.col values not available to
> > be 1.
> > >
> > >
> > > Is there any other trick where I map by row and
> > column
> > > names instead of using advanced xtabs.
> > >
> > > thanks
> > > Srini
> > >
> > > ______________________________________________
> > > 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.
> > >
> >
> >
> > --
> > Henrique Dallazuanna
> > Curitiba-Paraná-Brasil
> > 25° 25' 40" S 49° 16' 22" O
> >
>
>
>
>
> ____________________________________________________________________________________
> Never miss a thing. Make Yahoo your home page.
> http://www.yahoo.com/r/hs
>
--
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O
More information about the R-help
mailing list