[R] How to link two R packages together

Bert Gunter gunter.berton at gene.com
Thu Aug 2 16:44:49 CEST 2012


I will reply inline here, but I believe any further questions about
package development should be posted to the R-devel list rather than
here (please someone correct me if this is wrong).

-- Bert

On Thu, Aug 2, 2012 at 7:02 AM, Xuan Zhao <xuan.zhao at sentrana.com> wrote:
> Hi All,
> Thank you so much for all the help you have provided, I really appreciate it!
> The problem is solved, I just added PKG2 to the dependency of PKG1 in the description file, also (I don't know if it's necessary or not),

>From the R extensions manual:
"The ‘Imports’ field lists packages whose namespaces are imported from
(as specified in the
‘NAMESPACE’ file) but which do not need to be attached."

"Packages declared in the ‘Depends’ field should not
also be in the ‘Imports’ field."  [in the DESCRIPTION file]"

So the answer is no -- you should not do this, although as you
apparently did not specify the imports in the DESCRIPTION file, it
should have no effect.

 I added "import(PKG2)" to the NAMESPACE file.
So remove this.

 In addition to that, I install PKG2 under a path R can recognize,
namely, belong to ".libPaths()".

Of course. See ?library ?INSTALL  ?install.packages (in R).  This is
the 2nd paragraph of the installation manual, in which ALL your
questions are answered.

-- Bert


> I have tried other ways besides install it under the path R can recognize, like  adding a file ~/.R/check.Environ, whose contents are: 'R_LIBS_SITE=${R_LIBS_SITE-'directoryunderwhichPKG2isinstalled'}', but it still doesn't work.
> I looked through the manual, they just say the file 'check.Environ' should be put under '~/.R', but I am not should what the "~/" should be. Is that my home directory or what? Should that be the host? I am not the host of the server, does that matter?
> Thank you so much for the help!
> Yours,
> Xuan
>
> -----Original Message-----
> From: Bert Gunter [mailto:gunter.berton at gene.com]
> Sent: Thursday, August 02, 2012 9:42 AM
> To: Joshua Wiley
> Cc: Michael Weylandt; r-help at r-project.org; Xuan Zhao
> Subject: Re: [R] How to link two R packages together
>
> Josh:
>
> You may be right ... but I still do not think so. Note that the post begins with:
>
> One of them (PKG1) needs to use the functions
>> of the other package (PKG2).
>
> This is exactly what imports are for. I believe that, because he/she failed to RTFM, he/she is not being accurate in his/her use of the relevant terms. Certainly, to me at least, it is unclear. Moreover, as I understand it (see the manual) imports are preferred over dependencies, as I indicated in my reply.
>
> Anyway, in either case, the central advice is that which both Michael and I gave: RTFM. Perhaps it's a generation gap (I am old), but I believe there has been a trend for new R users to post here without making any significant effort to consult the docs. This strikes me as intellectually lazy and, frankly, inconsiderate to those like yourself
> -- or BDR -- who are willing to give up their time and effort to help those with legitimate questions. You and others may consider this an overreaction of course.
>
> Sorry for the rant, but it seems relevant to your close parsing of the thread.
>
> -- Cheers,
> Bert
>
> On Wed, Aug 1, 2012 at 10:35 PM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
>> On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter <gunter.berton at gene.com> wrote:
>>> On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
>>> <michael.weylandt at gmail.com> wrote:
>>>> Isn't this what package dependencies are for?
>>>
>>> No. It's what package imports are for (preferably).
>>> As always, the OP should RTFM -- in this case the one to which you
>>> refer on the next line, especially the NAMESPACES section.
>>
>> But note that the original question included, "when I load one package
>> using 'library("PKG1")', PKG2 can be loaded at the same." which
>> imports does not exactly do. They become available to the package, but
>> not to the user, so if you really need both packages loaded to the
>> search path, then you need a dependency, not imports.
>>
>> Cheers,
>>
>> Josh
>>
>>>
>>> -- Bert
>>>
>>>>
>>>> See the description of the DESCRIPTION file in Writing R Extensions
>>>>
>>>> Michael
>>>>
>>>> On Aug 1, 2012, at 5:27 PM, xuan zhao <xuan.zhao at sentrana.com> wrote:
>>>>
>>>>> Hi,
>>>>> I have built two R packages. One of them (PKG1) needs to use the
>>>>> functions of the other package (PKG2).
>>>>> So I need to link these two packages together, so that the
>>>>> functions of PKG2 can be available to PKG1. And when I load one
>>>>> package using 'library("PKG1")', PKG2 can be loaded at the same.
>>>>> Any ideas welcome.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://r.789695.n4.nabble.com/How-to-link-two-R-packages-together-t
>>>>> p4638765.html Sent from the R help mailing list archive at
>>>>> Nabble.com.
>>>>>
>>>>> ______________________________________________
>>>>> R-help at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>> PLEASE do read the posting guide
>>>>> http://www.R-project.org/posting-guide.html
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>>>
>>> --
>>>
>>> Bert Gunter
>>> Genentech Nonclinical Biostatistics
>>>
>>> Internal Contact Info:
>>> Phone: 467-7374
>>> Website:
>>> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pd
>>> b-biostatistics/pdb-ncb-home.htm
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
>> --
>> Joshua Wiley
>> Ph.D. Student, Health Psychology
>> Programmer Analyst II, Statistical Consulting Group University of
>> California, Los Angeles https://joshuawiley.com/
>
>
>
> --
>
> Bert Gunter
> Genentech Nonclinical Biostatistics
>
> Internal Contact Info:
> Phone: 467-7374
> Website:
> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm



-- 

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm



More information about the R-help mailing list