Hadley's reshape package (google for it) can do this. There's a nice intro on the site.
> library(reshape) > cast(melt(mydf, measure.vars = "value"), city ~ brand, fun.aggregate = sum) city x y z 1 a 3 23 450 2 b 12 42 231 Although the numbers differ slightly? I've heard of the reshape2 package, but have no idea if that's replaced the reshape package yet. --Erik Dimitri Liakhovitski wrote:
Hello! I have a data frame like this one: mydf<-data.frame(city=c("a","a","a","a","a","a","a","a","b","b","b","b","b","b","b","b"), brand=c("x","x","y","y","z","z","z","z","x","x","x","y","y","y","z","z"), value=c(1,2,11,12,111,112,113,114,3,4,5,13,14,15,115,116)) (mydf) What I need to get is a data frame like the one below - cities as rows, brands as columns, and the sums of the "value" within each city/brand combination in the body of the data frame: city x y z a 3 23 336 b 7 42 231 I have written a code that involves multiple loops and subindexing - but it's taking too long. I am sure there must be a more efficient way of doing it. Thanks a lot for your hints!
______________________________________________ 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.