[datatable-help] lapply without anonymous function

G See gsee000 at gmail.com
Sun Nov 10 20:39:15 CET 2013


Hi,

I have a list of data.tables and I am trying to extract a subset from
each of them.  I can achieve what I want with this:

> L <- list(data.table(BOD), data.table(BOD))
> lapply(L, function(x) x[Time==3L])
[[1]]
   Time demand
1:    3     19

[[2]]
   Time demand
1:    3     19

However, I'd rather not type have to create an anonymous function.  I
tried the below, but `[.data.frame` is being dispatched.

> lapply(L, "[", Time==3L)
Error in `[.data.frame`(x, i) : object 'Time' not found

Even if I am explicit, `[.data.table` does not get dispatched:

> lapply(L, data.table:::`[.data.table`, Time==3L)
Error in `[.data.frame`(x, i) : object 'Time' not found

I'm guessing this is due to where evaluation takes place.  Is there an
alternate syntax I should use?

Thanks,
Garrett


More information about the datatable-help mailing list