[datatable-help] data.table: partition like aggregate (FUN = list)

Arunkumar Srinivasan aragorn168b at gmail.com
Sun Apr 27 20:51:44 CEST 2014


You can do:

## R < 3.1

dt[, list(x=list(x), y=list(y)), by=list(grp = x %% 3)]

## >= 3.1 (for now, until bug
#5585<https://r-forge.r-project.org/tracker/index.php?func=detail&aid=5585&group_id=240&atid=975>is
fixed)

dt[, list(x=list(I(x)), y=list(I(y))), by=list(grp = x %% 3)]




On Sun, Apr 27, 2014 at 1:47 PM, Dan Muresan <danmbox at gmail.com> wrote:

> How do I achieve the following partitioning effect:
>
> dt = data.table (x=10:14, y=20:24)
> aggregate (dt, by = list (dt$x %% 3), FUN = list)
>
>   Group.1      x      y
> 1       0     12     22
> 2       1 10, 13 20, 23
> 3       2 11, 14 21, 24
>
> If I try the following it doesn't work (and I think I know why):
>
> dt [, by = x %% 3, j = list(y)]
>    x  y
> 1: 1 20
> 2: 1 23
> 3: 2 21
> 4: 2 24
> 5: 0 22
>
> (while with j = max (y) it of course works, generating a "V1" column)
>
> Also, how do I name the result of the j-expression (by default the
> resulting column is "V1")?
> _______________________________________________
> datatable-help mailing list
> datatable-help at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/datatable-help
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/datatable-help/attachments/20140427/fbc354d7/attachment.html>


More information about the datatable-help mailing list