如。日期,日期格式为 R 中 m/d/y

as.Date with dates in format m/d/y in R

提问人:Peter Flom 提问时间:2/26/2013 最后编辑:David ArenburgPeter Flom 更新时间:12/26/2019 访问量:19698

问:

一位客户给我发了一个 Excel 文件,日期格式为 2012 年 3 月 15 日 3 月 15 日。我将其保存为 .csv 文件,然后使用

camm$Date <- as.Date(camm$Date, "%m/%d/%y")

但这给了我从 2020 年开始的价值!

我试图重新格式化原始 csv 文件中的日期,以便它们例如 03/14/2013,但无法这样做。

任何帮助不胜感激

日期 R-常见问题

评论

5赞 A5C1D2H2I1M1N2O1R2T1 2/26/2013
你试过大写吗?%Y

答:

12赞 Jilber Urbina 2/26/2013 #1

在看涨期权中使用大写字母。这应该可以解决问题:Yas.Date

> as.Date("3/15/2012", "%m/%d/%Y")
[1] "2012-03-15"

从帮助文件的示例中,您可以意识到,当指定年份已满时,您应该使用其他方式,例如:%Y%y

> dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
> as.Date(dates, "%m/%d/%y")
[1] "1992-02-27" "1992-02-27" "1992-01-14" "1992-02-28" "1992-02-01"

您可以看到,在您的示例中,年份格式是 2012,那么您应该使用 ,而在另一个示例中(取自帮助文件)年份格式是 92,那么使用是正确的方法。有关详细信息,请参阅。%Yas.Date%yas.Date

2赞 daroczig 2/26/2013 #2

如果您不想处理象形文字:),您也可以尝试使用该软件包lubridate

> library(lubridate)
> parse_date_time('3/15/2012', 'mdy')
 1 parsed with %m/%d/%Y
[1] "2012-03-15 UTC"

PS.:当然,我不鼓励任何人使用任何额外的依赖项,这个答案只是作为替代(并且快速记住)的解决方案发布在这里

1赞 Uwe 1/6/2017 #3

要完成图片,您还可以尝试最近引入的 (2016-09) 包,它利用了 C++ 库:anytimeBoost

anytime::anytime("3/15/2012")
#[1] "2012-03-15 CET"
1赞 Ronak Shah 12/26/2019 #4

我们可以从mdylubridate

lubridate::mdy('3/15/2012')
#[1] "2012-03-15"

或者使用与parse_datereadras.Date

readr::parse_date('3/15/2012', '%m/%d/%Y')
#[1] "2012-03-15"