[datatable-help] lapply without anonymous function
Gabor Grothendieck
ggrothendieck at gmail.com
Mon Nov 11 15:06:48 CET 2013
On Sun, Nov 10, 2013 at 2:39 PM, G See <gsee000 at gmail.com> wrote:
> 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?
>
subset works:
> lapply(L, subset, Time == 3L)
[[1]]
Time demand
1: 3 19
[[2]]
Time demand
1: 3 19
--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
More information about the datatable-help
mailing list