数月 (9) 的算术结果为 NA

问题描述 投票:0回答:1

我在 R 中遇到了一些不寻常的计算日期的行为

我正在尝试通过从出生日期开始计算 9 个月来估计受孕日期,其中出生日期的格式为

as_date("1946-03-31"
.

所以,计算看起来像

as_date("1946-03-31")- months(9)

然而,我得到的不是约会,而是

NA
.

奇怪的是,如果我改变月份,我会得到一个完美的结果:

as_date("1946-03-31")- months(8)

as_date("1946-03-31")- months(10)

都有效。

如果我用几天,我也能得到一个完美的约会

as_date("1946-03-31")- days(273)

我失踪有一个完全明显的原因吗?如果不是,这是否可以在其他设置中复制?

r lubridate as.date
1个回答
0
投票

月份定义不明确。 3 月 30 日之前的 1 个月是多少?它没有明确定义,因为二月的天数少于三月。 “9个月”作为妊娠期也是一个非常粗略的估计。你期待

as_date("1946-03-31")- months(9)
的答案是什么?是
as_date("1946-03-28")- months(9)
后3天吗?还是前一天
as_date("1946-04-01")- months(9)
?两者都有些合理,但使用通用方法时它们是不同的。当我用谷歌搜索“人类妊娠期”时,我得到 280 天——我建议改用它。日子美好而一致。

© www.soinside.com 2019 - 2024. All rights reserved.