让我们看一下lubridate软件包中类型months
的方法numeric
的示例。
加载程序包时,一切都会按预期进行:
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
months(3)
#> [1] "3m 0d 0H 0M 0S"
由reprex package(v0.2.1)于2018-10-28创建
但是,当未加载包时,我无法访问该方法。
lubridate::months(3)
#> Error: 'months' is not an exported object from 'namespace:lubridate'
由reprex package(v0.2.1)于2018-10-28创建
我不想用:::
来调用该函数,因为这是不好的做法。假设我不想加载程序包,该怎么办?
答案 0 :(得分:1)
这就是它的工作方式,但是您可以将:::隐藏在函数定义中,以便您的主要代码可以仅使用months
。
months.numeric <- lubridate:::months.numeric
months(3)
## [1] "3m 0d 0H 0M 0S"
答案 1 :(得分:0)
G. Grothendieck's answer的替代方法是使用getFromNamespace()
:
months.numeric <- getFromNamespace("months.numeric", "lubridate")
months(3)
# [1] "3m 0d 0H 0M 0S"