[datatable-help] `with=F` in the `i` Argument
G See
gsee000 at gmail.com
Sat May 31 06:44:59 CEST 2014
Hi Michael,
I would use get()
DT <- data.table(a = 1:4, b = 8:5)
for (i in c("a", "b"))
print(DT[order(get(i))])
For what it's worth, your solution doesn't seem to work in data.table
1.9.3 (svn rev. 1278):
> for (i in c("a", "b"))
+ print(DT[order(DT[, i, with = FALSE])])
Error in forder(DT, DT[, i, with = FALSE]) :
Column '1' is type 'list' which is not supported for ordering currently.
HTH,
Garrett
On Fri, May 30, 2014 at 11:01 PM, Michael Smith <my.r.help at gmail.com> wrote:
> All,
>
> I'm trying to order the rows according to several columns at a time:
>
> DT <- data.table(a = 1:4, b = 8:5)
> for (i in c("a", "b"))
> print(DT[order(i), with = FALSE])
>
> It doesn't work, since `with` seems to be about the `j` argument, but
> not the `i` argument, according to `?data.table`.
>
> I found the following workaround, but wonder whether there is a more
> elegant way to do it:
>
> for (i in c("a", "b"))
> print(DT[order(DT[, i, with = FALSE])])
>
> Thanks,
> M
> _______________________________________________
> 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
More information about the datatable-help
mailing list