当我输入中缺少lubridate :: mdy()时,为什么要添加日期?

时间:2020-09-16 18:19:38

标签: r tidyverse lubridate

我故意在这段代码中忽略这一天,并期望它失败,返回警告或返回不完整的记录。

txt <-  "January 2010"
lubridate::mdy(txt)

输出为“ 2010-01-20”。如果不是我的输入,为什么它包含“ 20”?该值背后的逻辑是什么?

1 个答案:

答案 0 :(得分:1)

它与解析的顺序有关。根据{{​​1}}

对于异构日期格式,ymd()系列根据输入向量的子集猜测格式。如果输入向量包含许多缺失值或非日期字符串,则子集可能不包含有意义的日期

原始字符串包括月份和后跟4位数字的年份,并且- does_it_have_365_1s [1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]; > val it = false : bool ?mdymdy monthday可以是2位数字或4位数字。现在,有一个混乱,它将2位数字的年份选择为“ 10”,而将日期解析为“ 20”。相反,如果我们添加一天然后使用year,它将被解析为4位数的年份

year
相关问题