Converting a data frame with values into a matrix/
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
> > 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