Re: [R] How to link two R packages together

2012-08-02 Thread Bert Gunter
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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@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-tp4638765.html
 Sent from the R help mailing list archive at Nabble.com.

 __
 R-help@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@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/pdb-biostatistics/pdb-ncb-home.htm

 __
 R-help@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

__
R-help@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.


Re: [R] How to link two R packages together

2012-08-02 Thread Joshua Wiley
Hi Bert,

Likewise, you may well be right.  In fact, if I were going to assign
probabilities of being correct given the original post, I would give
you about .7 and me about .3.  I commented for completeness of
discussion.  I definitely see your point, and thank you for a
thoughtful reply to my post. I agree that many questions seem to me
that a quick read of the docs would solve them. That brings up an
interesting point, though.  In a population of 100, if 1-2 people have
a preventable illness, we might be inclined to blame them; what if
40-50 people have the preventable illness?  It seems to me lack of
reading the docs and following the posting guide are at epidemic
proportions. I do not know if it is a generation gap, true laziness,
lack of knowledge that the docs and posting guide _should_ be read
first, or ...

This is slightly OT, but I remember one time when I was working with
someone in person (not in R), and there was a question about how to
customize some graphic.  I immediately went to open up the help files
but the person I was working with said, I don't want look at the
documentation and instead starting searching through a cookbook of
different graphs to try to find the answer.  I was shocked because it
seemed like an innate visceral response to the official docs. Perhaps
our useRs are afflicted with this same condition.

Cheers,

Josh

On Thu, Aug 2, 2012 at 6:42 AM, Bert Gunter gunter.ber...@gene.com wrote:
 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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@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-tp4638765.html
 Sent from the R help mailing list archive at Nabble.com.

 __
 R-help@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@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/pdb-biostatistics/pdb-ncb-home.htm

 __
 R-help@r-project.org mailing list
 https://stat.ethz.ch/mailman/listinfo/r-help
 PLEASE do read the posting guide 

Re: [R] How to link two R packages together

2012-08-02 Thread Joshua Wiley
Hi Xuan,

I would expect ~/R/ to be the R_HOME directory, though perhaps I am
wrong.  Also, you only need a depends or an imports, not both.  At a
simplified level, the difference is that importing PKG2 in PKG1 makes
the (exported) functions in PKG2 available to PKG1. Depends also makes
the (exported) functions in PKG2 available to PKG1, but it _also_
makes them available to the user.  This can be good or bad, with the
recommendation now being not to. The reason it can be good is if you
want your users to have access to functions in both packages without
explicitly loading both. However, let's say that function foo() is
defined in PKG2 and in PKG3. PKG1 does not know about PKG3, and the
user had PKG3 loaded prior to loading PKG1. Then when PKG1 loads, PKG2
also loads, and because all the exported functions from PKG2 are
included, PKG2::foo() masks PKG3::foo(), which can be annoying for
users if your package adds unnecessary functions to the search path
potentially masking the versions they wanted to use.

That was a rather convoluted explanation, but hopefully it is somewhat clear.

Sincerely,

Josh

On Thu, Aug 2, 2012 at 7:02 AM, Xuan Zhao xuan.z...@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), I added 
 import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 
 under a path R can recognize, namely, belong to .libPaths().
 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.ber...@gene.com]
 Sent: Thursday, August 02, 2012 9:42 AM
 To: Joshua Wiley
 Cc: Michael Weylandt; r-help@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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@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

Re: [R] How to link two R packages together

2012-08-02 Thread Bert Gunter
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.z...@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.ber...@gene.com]
 Sent: Thursday, August 02, 2012 9:42 AM
 To: Joshua Wiley
 Cc: Michael Weylandt; r-help@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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@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@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@r

Re: [R] How to link two R packages together

2012-08-02 Thread R. Michael Weylandt
On Thu, Aug 2, 2012 at 9:02 AM, Xuan Zhao xuan.z...@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), I added 
 import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 
 under a path R can recognize, namely, belong to .libPaths().
 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.

By which you mean  ?

 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

~ is a standard UNIX (POSIX?) shorthand for the user's home
directory. On my Mac it is /Users/mweylandt and I imagine you'd get
something similar on all Linux and BSD systems -- one easy way to see
where it is: go to your terminal and type cd  pwd which will print
it out. No idea what the parallel on Windows is: possibly something
under C:/Documents and Settings but it's been so long since I've had
the misfortune of doing serious work on Windows, I can't remember.

Incidentally, is there a reason you can't put your package in the
regular place?

Finally, see the manuals that Bert, Josh, and I have pointed you to:
they are much more authoritative on these matters than any of us.

Best,
Michael

__
R-help@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.


Re: [R] How to link two R packages together

2012-08-02 Thread Bert Gunter
Inline.

On Thu, Aug 2, 2012 at 7:39 AM, Joshua Wiley jwiley.ps...@gmail.com wrote:
 Hi Xuan,

 I would expect ~/R/ to be the R_HOME directory, though perhaps I am
 wrong.  Also, you only need a depends or an imports, not both.  At a
 simplified level, the difference is that importing PKG2 in PKG1 makes
 the (exported) functions in PKG2 available to PKG1. Depends also makes
 the (exported) functions in PKG2 available to PKG1, but it _also_
 makes them available to the user.  This can be good or bad, with the
 recommendation now being not to. The reason it can be good is if you
 want your users to have access to functions in both packages without
 explicitly loading both.
This is false, I believe.  From the manual:

The R INSTALL facilities check if the version of R used is recent
enough for the package being installed,and the list of packages which
is specified will be attached (after checking version requirements)
before the current package, ...

So including a package in  Depends leads not only to loading, but attaching.

-- Bert

 However, let's say that function foo() is
 defined in PKG2 and in PKG3. PKG1 does not know about PKG3, and the
 user had PKG3 loaded prior to loading PKG1. Then when PKG1 loads, PKG2
 also loads, and because all the exported functions from PKG2 are
 included, PKG2::foo() masks PKG3::foo(), which can be annoying for
 users if your package adds unnecessary functions to the search path
 potentially masking the versions they wanted to use.

 That was a rather convoluted explanation, but hopefully it is somewhat clear.

 Sincerely,

 Josh

 On Thu, Aug 2, 2012 at 7:02 AM, Xuan Zhao xuan.z...@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), I added 
 import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 
 under a path R can recognize, namely, belong to .libPaths().
 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.ber...@gene.com]
 Sent: Thursday, August 02, 2012 9:42 AM
 To: Joshua Wiley
 Cc: Michael Weylandt; r-help@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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@sentrana.com wrote:

 Hi,
 I have built two R packages. One of them (PKG1) needs to use

Re: [R] How to link two R packages together

2012-08-02 Thread Xuan Zhao
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), I added 
import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 under 
a path R can recognize, namely, belong to .libPaths(). 
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.ber...@gene.com] 
Sent: Thursday, August 02, 2012 9:42 AM
To: Joshua Wiley
Cc: Michael Weylandt; r-help@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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt 
 michael.weyla...@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.z...@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@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@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@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

Re: [R] How to link two R packages together

2012-08-02 Thread Xuan Zhao
Hi Josh,
Thank you so much for your detailed explanation. It's very clear, and now I can 
understand the difference between depends and imports.
Thank you so much for your help!! I really really appreciate it!
Yours,
Xuan

-Original Message-
From: Joshua Wiley [mailto:jwiley.ps...@gmail.com] 
Sent: Thursday, August 02, 2012 10:40 AM
To: Xuan Zhao
Cc: r-help@r-project.org
Subject: Re: [R] How to link two R packages together

Hi Xuan,

I would expect ~/R/ to be the R_HOME directory, though perhaps I am wrong.  
Also, you only need a depends or an imports, not both.  At a simplified level, 
the difference is that importing PKG2 in PKG1 makes the (exported) functions in 
PKG2 available to PKG1. Depends also makes the (exported) functions in PKG2 
available to PKG1, but it _also_ makes them available to the user.  This can be 
good or bad, with the recommendation now being not to. The reason it can be 
good is if you want your users to have access to functions in both packages 
without explicitly loading both. However, let's say that function foo() is 
defined in PKG2 and in PKG3. PKG1 does not know about PKG3, and the user had 
PKG3 loaded prior to loading PKG1. Then when PKG1 loads, PKG2 also loads, and 
because all the exported functions from PKG2 are included, PKG2::foo() masks 
PKG3::foo(), which can be annoying for users if your package adds unnecessary 
functions to the search path potentially masking the versions!
  they wanted to use.

That was a rather convoluted explanation, but hopefully it is somewhat clear.

Sincerely,

Josh

On Thu, Aug 2, 2012 at 7:02 AM, Xuan Zhao xuan.z...@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), I added 
 import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 
 under a path R can recognize, namely, belong to .libPaths().
 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.ber...@gene.com]
 Sent: Thursday, August 02, 2012 9:42 AM
 To: Joshua Wiley
 Cc: Michael Weylandt; r-help@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.ps...@gmail.com wrote:
 On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt 
 michael.weyla...@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.z...@sentrana.com wrote:

 Hi,
 I have built two R packages. One of them (PKG1) needs to use the 
 functions of the other

Re: [R] How to link two R packages together

2012-08-02 Thread Xuan Zhao
Hi Michael,
Thank you so much for the help Michael! When I put my package 'PKG2' (on which 
PKG1 is depending on) in the regular place, perhaps a place R CMD check won't 
look at, then when I try to build PKG1, they will say PKG2 required but not 
found, so I have to put it under a directory R looks at, just the paths under 
'.libPaths()'. 
I read through the manual (the 7th section entitled toolsof R internals), 
and they suggest changing check.Environ under ~/.R, so I have tried to put 
check.Environ ~/.R, ~/ is my home directory which is just the path shown 
after typing cd pwd. But It doesn't work, so I thought ~/ might be 
something else.
Thank you so much for the help, I really appreciate that!
Yours,
Xuan

-Original Message-
From: R. Michael Weylandt [mailto:michael.weyla...@gmail.com] 
Sent: Thursday, August 02, 2012 10:46 AM
To: Xuan Zhao
Cc: r-help@r-project.org
Subject: Re: [R] How to link two R packages together

On Thu, Aug 2, 2012 at 9:02 AM, Xuan Zhao xuan.z...@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), I added 
 import(PKG2) to the NAMESPACE file. In addition to that, I install PKG2 
 under a path R can recognize, namely, belong to .libPaths().
 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.

By which you mean  ?

 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

~ is a standard UNIX (POSIX?) shorthand for the user's home directory. On my 
Mac it is /Users/mweylandt and I imagine you'd get something similar on all 
Linux and BSD systems -- one easy way to see where it is: go to your terminal 
and type cd  pwd which will print it out. No idea what the parallel on 
Windows is: possibly something under C:/Documents and Settings but it's been so 
long since I've had the misfortune of doing serious work on Windows, I can't 
remember.

Incidentally, is there a reason you can't put your package in the regular 
place?

Finally, see the manuals that Bert, Josh, and I have pointed you to:
they are much more authoritative on these matters than any of us.

Best,
Michael

__
R-help@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.


Re: [R] How to link two R packages together

2012-08-01 Thread Roberto
Yuo can use source function.

Looking for ?source for an example.

Best,
Roberto



--
View this message in context: 
http://r.789695.n4.nabble.com/How-to-link-two-R-packages-together-tp4638765p4638766.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


Re: [R] How to link two R packages together

2012-08-01 Thread Michael Weylandt
Isn't this what package dependencies are for?

See the description of the DESCRIPTION file in Writing R Extensions

Michael

On Aug 1, 2012, at 5:27 PM, xuan zhao xuan.z...@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-tp4638765.html
 Sent from the R help mailing list archive at Nabble.com.
 
 __
 R-help@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@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.


Re: [R] How to link two R packages together

2012-08-01 Thread Michael Weylandt
I think all you need to do is add /directory/ to the library search path -- see 
?.libPaths

Michael

On Aug 1, 2012, at 9:30 PM, Xuan Zhao xuan.z...@sentrana.com wrote:

 Hi Michael,
 Thank you so much for your help!
 But my package is not under a directory that can be searched automatically, 
 namely, when load my package, I have to do: 
 library(PKG1,lib.loc=/directory/), in this case, how to write the 
 dependency?
 Like 'Depends: PKG1', where can I specify the path?
 Thank you so much again!
 Yours,
 Xuan
 
 -Original Message-
 From: Michael Weylandt [mailto:michael.weyla...@gmail.com] 
 Sent: Wednesday, August 01, 2012 9:45 PM
 To: Xuan Zhao
 Cc: r-help@r-project.org
 Subject: Re: [R] How to link two R packages together
 
 Isn't this what package dependencies are for?
 
 See the description of the DESCRIPTION file in Writing R Extensions
 
 Michael
 
 On Aug 1, 2012, at 5:27 PM, xuan zhao xuan.z...@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-tp46
 38765.html Sent from the R help mailing list archive at Nabble.com.
 
 __
 R-help@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@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.


Re: [R] How to link two R packages together

2012-08-01 Thread Bert Gunter
On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
michael.weyla...@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.

-- Bert


 See the description of the DESCRIPTION file in Writing R Extensions

 Michael

 On Aug 1, 2012, at 5:27 PM, xuan zhao xuan.z...@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-tp4638765.html
 Sent from the R help mailing list archive at Nabble.com.

 __
 R-help@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@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/pdb-biostatistics/pdb-ncb-home.htm

__
R-help@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.


Re: [R] How to link two R packages together

2012-08-01 Thread Joshua Wiley
On Wed, Aug 1, 2012 at 10:28 PM, Bert Gunter gunter.ber...@gene.com wrote:
 On Wed, Aug 1, 2012 at 6:45 PM, Michael Weylandt
 michael.weyla...@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.z...@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-tp4638765.html
 Sent from the R help mailing list archive at Nabble.com.

 __
 R-help@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@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/pdb-biostatistics/pdb-ncb-home.htm

 __
 R-help@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/

__
R-help@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.