Hi, Michael, Seems like all you need is aggregate and rbind:
x <- aggregate(saw.aggr.data["value"], saw.aggr.data[c("conversion.type", "filteredID", "metric")], sum) x$bucketID <- "combined" y <- rbind(saw.aggr.data, x) Is this what you need? --sundar On Mon, Oct 12, 2009 at 6:09 AM, Michael Pearmain <mpearm...@google.com> wrote: > Hi All, > > I have a questions about associative list mappings in R, and if they are > possible? > > I have data in the form show below, and want to make a new 'bucket' variable > called combined. Which is the sum of the control and the exposed metric > values > This combined variable is a many to many matching as values only appear in > the file if they have a value > 0. > > conversion.type filteredID bucketID Metric Value > counter true control a 1 > counter true control b 1 > counter true control c 2 > counter true control d 3 > > counter true exposed a 4 > counter true exposed e 1 > > ASIDE: > > At the minute i read the data into my file and and then create all the > 'missing' row values > (in this case, > counter true control e 0 > counter true exposed b 0 > counter true exposed c 0 > counter true exposed d 0) > > > and then run a sort on the data, and count the number of times control > appears, and then use this as an index matcher. > > saw.aggr.data <- [order(saw.aggr.data$bucketID, saw.aggr.data$metric), ] > no.of.metrics <- length(saw.aggr.data$bucketID[grep("control", > saw.aggr.data$bucketID)]) > > for (i in (1:no.of.metrics)) { > assign(paste("combined", as.character(saw.aggr.data$metric[i])), > (saw.aggr.data$value[i] + saw.aggr.data$value[i + no.of.metrics])) > } > > This does what i want it to but is very very weak and could be open to large > errors, ( error handling currently via grepping the names of the metric[i] > == name of metric [i + no.of.metrics]) > > Is there a more powerful way of doing this using some kind of list mapping? > I've looked at the older threads in this area and it looks like something > that should be possible but i can't figure out how to do this? > Ideally i'd like a final dataset / list that is of the following form. > > conversion.type filteredID bucketID Metric Value > counter true control a 1 > counter true control b 1 > counter true control c 2 > counter true control d 3 > > counter true exposed a 4 > counter true exposed e 1 > counter true combined a 5 > counter true combined b 1 > counter true combined c 2 > counter true combined d 3 > counter true combined e 1 > > So i dont have to create the dummy variables. > > does this make sense? > > Many thanks in advance > > Mike > > > > -- > Michael Pearmain > "I abhor averages. I like the individual case. A man may have six meals > one day and none the next, making an average of three meals per day, but > that is not a good way to live. ~Louis D. Brandeis" > > f you received this communication by mistake, please don't forward it to > anyone else (it may contain confidential or privileged information), please > erase all copies of it, including all attachments, and please let the sender > know it went to the wrong person. Thanks. > > [[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. > ______________________________________________ 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.