> x
          url time somethingirrelevant visits
1 www.foo.com 1:00                 xxx    100
2 www.foo.com 1:00                 yyy     50
3 www.foo.com 2:00                 xyz     25
4 www.bar.com 1:00                 xxx    200
5 www.bar.com 1:00                 zzz    200
6 www.foo.com 2:00                 xxx    500
> ?aggregate
> aggregate(x$visits, list(x$url, x$time), sum)
      Group.1 Group.2   x
1 www.bar.com    1:00 400
2 www.foo.com    1:00 150
3 www.foo.com    2:00 525
>


On 12/12/06, George Nachman <gnachman@llamas.org> wrote:
>
> I have a data frame that looks like this:
>
> url         time somethingirrelevant visits
> www.foo.com 1:00 xxx                 100
> www.foo.com 1:00 yyy                 50
> www.foo.com 2:00 xyz                 25
> www.bar.com 1:00 xxx                 200
> www.bar.com 1:00 zzz                 200
> www.foo.com 2:00 xxx                 500
>
> I'd like to write some code that takes this as input and outputs
> something like this:
>
> url         time total_vists
> www.foo.com 1:00 150
> www.foo.com 2:00 525
> www.bar.com 1:00 400
>
> In other words, I need to calculate the sum of visits for each unique
> tuple of (url,time).
>
> I can do it with this code, but it's very slow, and doesn't seem like
> the right approach:
>
> keys = list()
> getkey = function(m,cols,index) { paste(m[index,cols],collapse=",")  }
> for (i in 1:nrow(data)) { keys[[getkey(data,1:2,i)]] = 0 }
> for (i in 1:nrow(data)) { keys[[getkey(data,1:2,i)]] =
> keys[[getkey(data,1:2,i)]] + data[i,4] }
>
> I'm sure there's a more functional-programming approach to this
> problem! Any ideas?
>
> ______________________________________________
> R-help@stat.math.ethz.ch 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem you are trying to solve?

	[[alternative HTML version deleted]]

