This is not quite what you want because it involves changing from ::
notation to $
notation, but if you load a package namespace (without attaching it), you can then refer to it by its environment name:
h <- loadNamespace('Hmisc')
p <- loadNamespace('plyr')
> summarize(iris$Sepal.Length, iris$Species, FUN=mean)
Error: could not find function "summarize"
> Hmisc::summarize(iris$Sepal.Length, iris$Species, FUN=mean)
iris$Species iris$Sepal.Length
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
> h$summarize(iris$Sepal.Length, iris$Species, FUN=mean)
iris$Species iris$Sepal.Length
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
> summarise(iris, x = mean(Sepal.Length))
Error: could not find function "summarise"
> plyr::summarise(iris, x = mean(Sepal.Length))
x
1 5.843333
> p$summarise(iris, x = mean(Sepal.Length))
x
1 5.843333
Note, however, that you do lose access to documentation files using the standard ?
notation (e.g., ? p$summarise
does not work). So, it will serve you well as shorthand, but may not be great for interactive use since you'll still have to resort to ? plyr::summarise
for that.
Note also that you do not have access to the data objects stored in the package using this approach.
expression()
is my new favorite function) and I also don't like unpredictable errors. Although eventually I do plan to work on packages so if there are separate considerations in that case I'd like to hear about them. – Omidyarsummarise
in plyr andsummarize
in Hmisc. Saving yourself three or four characters to avoid explicitlyHmisc::
'ing is silly. A better way would be to useexpr<TAB>
to fill in the rest which also will show you the package in which they reside. I will enjoy my carpal tunnel and writepackage::function
a couple times. – Pozzyimport numpy as np
in Python look pretty confusing at first glance. – Samuele