【发布时间】:2015-05-15 00:56:13
【问题描述】:
当我在加载 lubridate 包后加载 data.table 包时,我收到以下错误消息:
Loading required package: data.table
data.table 1.9.4 For help type: ?data.table
*** NB: by=.EACHI is now explicit. See README to restore previous behaviour.
Attaching package: ‘data.table’
The following objects are masked from ‘package:lubridate’:
hour, mday, month, quarter, wday, week, yday, year
有谁知道a) 是什么导致了这个问题,b) 如何防止lubridate 中的这些对象被屏蔽?
更新:
与上述相关的问题是我正在使用lubridate 包中的quarter 函数,并且在加载data.table 包后,我不能再以同样的方式这样做。
具体来说,当我运行 quarter(Date, with_year=TRUE)(其中 Date 是 class= 日期的向量)时,我现在收到以下错误:Error in quarter(Date, with_year = TRUE) : unused argument (with_year = TRUE)。
如果我简单地说,quarter(Date),那么我可以在没有附加年份的情况下获得所需的输出。例如,如果 Date 设置为 2015 年 5 月 15 日(今天),那么 quarter(Date) 将产生 2(因为我们处于 2015 年第二季度),但我希望它产生 @ 987654335@,因此with_year = TRUE 选项的重要性。
显然,我可以通过使用paste 将年份和quarter(Date) 的输出绑定在一起来克服这个问题,但我更愿意避免这种变通方法。
【问题讨论】:
-
你应该解释为什么这是一个问题。屏蔽通常意味着包提供了更多功能,而不是更少。
-
@BondedDust 但有时,您会获得不同的功能。这种情况会导致问题。
-
对.... 有时会出现问题。 ...但是哪些问题....我们需要特异性。究竟是什么问题?我猜这只是一个不知道掩蔽做什么并且没有对术语进行研究的用户。你有更好的理论吗?随时发布答案。我编辑了标签以删除对任一特定包的特异性,因为它对所有 R 包都是通用的。当你在它的时候解释命名空间。
-
我的近距离投票是因为缺乏明确性,但我可以想象其他投票是“为什么这段代码不起作用”......尽管实际上没有什么不起作用。
-
感谢 cmets。我已经编辑了我原来的问题,以反映为什么我不希望这种情况发生。让我知道是否还有歧义。
标签: r data.table lubridate