Try this: DF$Index <- ave(1:nrow(DF), DF$Name, FUN = seq_along) reshape(DF[-3], dir = "wide", idvar = "Name", timevar = "Index")
Also see the reshape package for another similar facility. On Wed, May 13, 2009 at 2:02 AM, Dana Sevak <dana.se...@yahoo.com> wrote: > > Dear R Helpers, > > I have trouble applying reShape and reshape although I read the documentation > and several posts, so I would very much appreciate your help on the two > points below. > > I have a dataframe > > df = data.frame(Name=c("a", "a", "a", "b", "b", "c"), X1=c("12", "13", "14", > "20", "25", "30"), X2 = c(200, 250, 300, 600, 700, 4)) > >> df > Name X1 X2 > 1 a 12 200 > 2 a 13 250 > 3 a 14 300 > 4 b 20 600 > 5 b 25 700 > 6 c 30 900 > > First I need to add an additional column to this dataframe that will count > the number of rows per each Name entry. The resulting df should look like: > > df.index = data.frame(Name=c("a", "a", "a", "b", "b", "c"), X1=c(12, 13, 14, > 20, 25, 30), X2 = c(200, 250, 300, 600, 700, 4), Index=c(1,2,3,1,2,1)) > >> df.index > Name X1 X2 Index > 1 a 12 200 1 > 2 a 13 250 2 > 3 a 14 300 3 > 4 b 20 600 1 > 5 b 25 700 2 > 6 c 30 900 1 > > How can I do this? > > > Secondly, I would like to reshape this dataframe in the form: > >> df2 > 1 2 3 > a 12 13 14 > b 20 25 NA > c 30 NA NA > > Since the df is sorted by Name and X2, I would need that the available X1 > values populate the resulting rows in df2 from left to right (i.e. if only > one value is available, it is written in the first column and the remaining > columns get NAs). If I could generate the Index column, I think I could > accomplish this with: > > df2 = reShape(df.index$X1, id=df.index$Name, colvar=df.index$Index) > colnames(df2) = c("V1", "V2", "V3") > > However, is there a way to get to df2 without using the Index column and > still have the NAs written as described above? > > Thank you so much for your help on these two issues. > > With best regards, > Dana Sevak > > ______________________________________________ > 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. > ______________________________________________ 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.