gpt4 book ai didi

r - 无法使用 as.Date 格式化月份

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

我在 as.Date 的“格式”部分遗漏了一些明显的东西。考虑这个例子
d1 <- data.frame(d = c("1/Jan/1947",
"1/Feb/1947",
"1/Mar/1947"),
d2 = c("Jan/1947",
"Feb/1947",
"Mar/1947"))

d1$date1 <- as.Date(x=d1$d, format="%d/%b/%Y")
d1$date2 <- as.Date(x=d1$d2, format="%b/%Y")

d d2 date1 date2
1 1/Jan/1947 Jan/1947 1947-01-01 <NA>
2 1/Feb/1947 Feb/1947 1947-02-01 <NA>
3 1/Mar/1947 Mar/1947 1947-03-01 <NA>

所以我的问题真的很简单——我不明白为什么 date1 有效但 date2 没有。

最佳答案

最简单的答案是日期是包含一天的内容,如果未指定,则 as.Date() 会混淆。从 ?as.Date 文档:

If the date string does not specify the date completely, the returned answer may be system-specific. The most common behaviour is to assume that a missing year, month or day is the current one. If it specifies a date incorrectly, reliable implementations will give an error and the date is reported as ‘NA’. Unfortunately some common implementations (such as ‘glibc’) are unreliable and guess at the intended meaning.



仔细想想,像“Mar/1947”这样的术语严格来说并不是日期——它只是月份和年份的组合。日期是 1947 年 3 月(或任何其他月份 + 年份)中的特定日期 - 由于您没有指定日期,因此您没有日期。

关于r - 无法使用 as.Date 格式化月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480499/

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