Hi Marna, Try this: library(prettyR) stretch_df(dat,idvar="ID",to.stretch=c("EventDate","SITE"))
Jim On Wed, May 2, 2018 at 8:24 AM, Marna Wagley <marna.wag...@gmail.com> wrote: > Hi R user, > I was trying to convert a long matrix to wide? I have an example and would > like to get a table (FinalData1): > > > FinalData1 > B1 B2 > id_X "A" "B" > id_Y "A" "B" > > but I got the following table using the following code. > > FinalData1 > > B1 B2 > > id_X "A" "A" > > id_Y "A" "B" > > > the code and the example data I used are given below. Is there any > suggestions to fix the problem? > > > dat<-structure(list(ID = structure(c(1L, 1L, 1L, 2L, 2L), .Label = c("id_X", > > > "id_Y"), class = "factor"), EventDate = structure(c(4L, 5L, 2L, > > 3L, 1L), .Label = c("9/15/16", "9/15/17", "9/7/16", "9/8/16", > > "9/9/16"), class = "factor"), timeGroup = structure(c(1L, 1L, > > 2L, 1L, 2L), .Label = c("B1", "B2"), class = "factor"), SITE = structure(c( > 1L, > > 1L, 2L, 1L, 2L), .Label = c("A", "B"), class = "factor")), .Names = c("ID", > > "EventDate", "timeGroup", "SITE"), class = "data.frame", row.names = c(NA, > > -5L)) > > > tmp <- split(dat, dat$ID) > > tmp1 <- do.call(rbind, lapply(tmp, function(dat){ > > tb <- table(dat$timeGroup) > > idx <- which(tb>0) > > tb1 <- replace(tb, idx, as.character(dat$SITE)) > > })) > > > tmp1 > > FinalData<-print(tmp1, quote=FALSE) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.