as.Date,日期格式为m / d / y,R

时间:2013-02-25 17:37:32

标签: r date r-faq

一位客户向我发送了一份Excel文件,其日期格式为3月15日,例如3月15日。我将其保存为.csv文件,然后使用

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

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

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

任何帮助表示赞赏

4 个答案:

答案 0 :(得分:9)

请在Y来电中使用大写as.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"

您可以看到,在您的示例中,Year格式为2012,那么您应该使用%Y,而在另一个示例中(取自as.Date帮助文件),Year格式为92,然后使用{{ 1}}是正确的方法。有关详细信息,请参阅%y

答案 1 :(得分:2)

如果你不想处理象形文字,你也可以试试lubridate包。)

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

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

答案 2 :(得分:1)

要完成图片,您还可以尝试最近推出的(2016-09)软件包anytime,它利用了Boost C ++库:

anytime::anytime("3/15/2012")
#[1] "2012-03-15 CET"

答案 3 :(得分:1)

我们可以使用import style from './App.module.css' 中的<div className={style.container}> Hello World! </div>

mdy

或者来自lubridate的{​​{1}},其格式与lubridate::mdy('3/15/2012') #[1] "2012-03-15"

parse_date