[R] conditionally merging adjacent rows in a data frame
Marek Janad
marek.janad at gmail.com
Tue Dec 8 23:40:20 CET 2009
I've sent last message only to Titus. Sorry :)
Below my proposition:
Instead of aggregate, try summaryBy from doBy package. It's much
faster. And this package made my life easier :)
try:
summaryBy(dur+x~index, data=d, FUN=c(sum, mean)),
but index should be in data.frame as I remember.
I haven't checked this code, so let me know, if it doesn't work.
2009/12/8 Titus von der Malsburg <malsburg at gmail.com>:
> On Tue, Dec 8, 2009 at 5:19 PM, Nikhil Kaza <nikhil.list at gmail.com> wrote:
>> I suppose that is true, but the example data seem to suggest that it is
>> sorted by rt.
>
> I was not very clear on that. Sorry.
>
>> d$count <- 1
>> a <- with(d, aggregate(subset(d, select=c("dur", "x", "count"),
>> list(rt=rt,tid=tid,mood=mood,roi=roi), sum))
>> a$x <- a$x/a$count
>
> This is neat!
>
>> But it would still be nice to get a generic way that uses different
>> functions on different columns much like excel's pivot table.
>
> I guess the most straight-forward thing would be to extend aggregate
> to also accept instead of a FUN a list of FUNs where the first is
> applied to value of the first column of x (the data frame), the second
> to the second column, and so on.
>
> Titus
>
> ______________________________________________
> R-help at 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.
>
--
Marek
More information about the R-help
mailing list