[datatable-help] Using := in .onLoad

Arunkumar Srinivasan aragorn168b at gmail.com
Tue Jan 20 14:01:00 CET 2015


Juan,

>
> I already know that.
>
Okay, great.

> I usually struggle when using data.table inside my own packages. I start
> by listing it in imports only (and not importing anything)
>
"imports only (and not importing anything)"?  - what do you mean?

> but end up depending on it, as for the users to be able to manipulate the
> data.tables with [ and :=.
>
It depends on whether you want the data.table NAMESPACE to be attached or
not. I think these posts may help:
http://r.789695.n4.nabble.com/Re-R-CMD-check-checking-in-development-version-of-R-td4696125.html#none
http://stackoverflow.com/questions/8637993/better-explanation-of-when-to-use-imports-depends


> I end up importing some or all of data.table also, because I don't know
> how to call := the :: notation.
>
I don't really follow this. Why do you want to use `::` along with `:=`.
The last post we just discussed that it can't be done, as it is not
designed to be used outside of  `[...]` and in very specific ways. Check
data.table:::`:=`. It is designed to error. This post might help:
http://stackoverflow.com/q/7033106/559784

> My specific problem was on using := during on.Load.
>
It'd be useful to know what you are trying to do, along with your code.

> I already know how to use it, and know that it can only be used inside [.
> Maybe it is imperative to @import data.table to be able to use :=?
>
I don't follow exactly how you are trying to use := to answer this.

Arun

>
> On Mon, Jan 19, 2015, 19:35 Arunkumar Srinivasan <aragorn168b at gmail.com>
> wrote:
>
>> Within the square brackets in "DT[ .... ]" and even there, only in `j`
>> (as the error message points out).
>>
>> On Mon, Jan 19, 2015 at 11:31 PM, Juan Manuel Truppia <
>> jmtruppia at gmail.com> wrote:
>>
>>> Arun, what does "within the frame of data.table" mean?
>>>
>>> On Mon, Jan 19, 2015, 19:17 Arunkumar Srinivasan <aragorn168b at gmail.com>
>>> wrote:
>>>
>>>> Juan,
>>>>
>>>> `:=` is designed to be used only within the frame of data.table.
>>>>
>>>> On Mon, Jan 19, 2015 at 10:45 PM, Juan Manuel Truppia <
>>>> jmtruppia at gmail.com> wrote:
>>>>
>>>>> Hi, I'm using data.table inside my own packages. I'm having some
>>>>> trouble using data.table functions on my .onLoad method.
>>>>> I'm actually depending (not importing) data.table, but even then, I
>>>>> can't get := to work in .onLoad.
>>>>> I'm using the `:=`(a = x, b = y) version, and getting
>>>>>
>>>>> Error in `:=`(a = x) :
>>>>> Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are
>>>>> defined for use in j, once only and in particular ways. See help(":=").
>>>>>
>>>>> If I comment that, and then run it from the console after the package
>>>>> is loaded, it works.
>>>>>
>>>>> Any ideas?
>>>>>
>>>>> _______________________________________________
>>>>> 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/20150120/8c59835c/attachment.html>


More information about the datatable-help mailing list