On 2009-12-02 16:31, Peng Yu wrote:
On Tue, Dec 1, 2009 at 11:27 PM, Sharpie <ch...@sharpsteen.net> wrote:

Peng Yu wrote:
Then I try the package 'try.package' in an R session. I'm wondering
why neither 'my_test_f' and 'try.package::my_test_f' work.

The error message you got below clearly explains this-- you did not export
my_test_f in your NAMESPACE file.  To access unexported functions, you must
use the ':::' operator:

 try.package:::my_test_f()



Peng Yu wrote:
Why 'my_test_g' can be accessed with 'try.package::' and without
'try.package::'?

Because you exported it in the NAMESPACE file.



Peng Yu wrote:
Is there a way to make  'my_test_g' accessible only by specifying the
namespace 'try.package::'?

No.

The purpose of the '::' operator is for those cases where multiple packages
are loaded that each export a function with the same name.  This is known as
"masking" and the last loaded package will contribute the dominant
function-- i.e. the function the gets called when the user types
"functionName()" and not "packageName::functionName()".  The "::" operator
allows the selection of functions that are masked by the dominant function.

If you really want to conceal a function from user-level code, don't export
it and it will only be accessible via the ":::" operator.

Is there a way to list all the functions in a namespace? I tried the
following one, but it is not working.

showMethods(where=getNamespace('try.package'))
No applicable functions

You're almost there, and the above approach *is* working but only for S4 methods. Try

showMethods(where = e <- getNamespace('stats4'))

I don't think there's a direct analogue for S3, but it that case you only do

ls(e)


HTH,
Henric




______________________________________________
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.

Reply via email to