library(lubridate) Attaching package: ‘lubrida-6ren">
gpt4 book ai didi

r - 为函数 "method with signature ‘Timespan#Timespan’“选择的润滑注释 ‘%/%’是什么意思?

转载 作者:行者123 更新时间:2023-12-04 04:15:36 24 4
gpt4 key购买 nike

当我在R中运行以下代码时,我得到一个奇怪的注释(它仅在我第一次在 session 中运行代码时出现):

> library(lubridate)
Attaching package: ‘lubridate’
The following object is masked from ‘package:base’:
date
Warning message:
package ‘lubridate’ was built under R version 3.3.2
> data.frame(i = interval(ymd(20140101), ymd(20160101)))$i %/% years(1)
Note: method with signature ‘Timespan#Timespan’ chosen for function ‘%/%’,
target signature ‘Interval#Period’.
"Interval#ANY", "ANY#Period" would also be valid
[1] 2

我倍感困惑:
  • 我不清楚它的替代语法是什么
    推荐。 #是R中的注释,因此大概意味着哈希
    除了散列以外,还意味着什么?
  • 告诉我我做错了吗?该注释似乎暗示它是一个FYI,但是如果没有问题,则将FYI抛在函数之外是一件很奇怪的事情。
  • 最佳答案

    该警告仅在您第一次运行时出现,以提醒您进行整数除法会产生问题,即月或年不一定与其他单位(例如小时或天)具有相同的长度。

    假设我们将2014--2018年的间隔除以2年,那么说答案为4并不完全正确,因为2016年是a年,有366天。因此,如果度量单位仅为年,那将是正确的,但如果将其表示为间隔(可以以年为单位,也可以以天或小时为单位),则表示它不是严格正确的。

    警告也确实没有办法解决(至少不是整数除法),因为警告总是指向重点,即使您将间隔%/%间隔或周期%/%周期除以。

    但是它只会在您第一次运行部门时显示,此后它会保持沉默。

    data.frame(i = interval(ymd(20140101), ymd(20160101)))$i %/% years(1)
    Note: method with signature ‘Timespan#Timespan’ chosen for function ‘%/%’,
    target signature ‘Interval#Period’.
    "Interval#ANY", "ANY#Period" would also be valid
    [1] 2
    data.frame(i = interval(ymd(20140101), ymd(20160101)))$i %/% years(1)
    [1] 2

    从理论上讲,如果分隔的两侧都表示为时间跨度类,则应该避免发出警告。但我从未尝试过这样做。

    关于r - 为函数 "method with signature ‘Timespan#Timespan’“选择的润滑注释 ‘%/%’是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42640746/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com