Try this: reshape(MyData, direction = 'long', varying = list(c('jan', 'feb')), idvar = 2:3)
On Tue, Jun 29, 2010 at 2:22 PM, Dimitri Liakhovitski < dimitri.liakhovit...@gmail.com> wrote: > Hello, everyone! > I have a very simple task - I have a data frame (see MyData below) and > I need to stack the data (see result below). > I wrote the syntax below - it's very basic and it does what I need. > But I am sure what I am trying to do is a very typical task and there > must be a much shorter/more elegant way of doing it. > Any advice? > > Thank you very much! > > > > MyData<-data.frame(names=c("John","Mary","Paul","Debby"),jan=c(10,15,20,25),feb=c(1,2,3,4)) > (MyData) > months<-names(MyData)[-1] > people<-as.character(MyData[[1]]) > > ### Creating a temp matrix with people as columns and months as rows: > transposed<-apply(MyData[-1],1,t) > > ### Putting vertical data (months as rows) - for each person - into a list: > list.of.stacked<-list() > for(i in 1:ncol(transposed)){ > > list.of.stacked[[i]]<-as.data.frame(matrix(ncol=3,nrow=length(months))) > names(list.of.stacked[[i]])<-c("month","values","person") > list.of.stacked[[i]][["month"]]<-months > list.of.stacked[[i]][["values"]]<-transposed[1:nrow(transposed),i] > list.of.stacked[[i]][["person"]]<-people[i] > } > (list.of.stacked) > > ### Creating a data frame from the list: > result<-do.call(rbind,list.of.stacked) > (result) > > > -- > Dimitri Liakhovitski > Ninah Consulting > www.ninah.com > > ______________________________________________ > R-help@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 [[alternative HTML version deleted]]
______________________________________________ R-help@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.