在R

时间:2015-10-06 19:54:37

标签: r date lubridate

我有一个从CSV文件导入的数据集,其中"年"专栏从2001年开始一直持续到2013年。

然而,列类是'整数'。

> class(Year)
[1] "integer"

我查看了有关如何进行此更改的各种解决方案和帖子,但解决方案似乎适用于某些版本的YYYY-mm-dd / dd-mm-yyy / mm-dd-yyyy或转换为20150521约会。

这些是我到目前为止尝试过的一些命令,没有运气。

Year <- as.Date(Year, "%Y")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

as.Date(Year)
Error in as.Date.numeric(Year) : 'origin' must be supplied

as.Date(Year, Year[1])
Error in as.Date.numeric(origin, ...) : 'origin' must be supplied

as.Date(Year, "2001")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

as.Date(Year, 2001)
Error in as.Date.numeric(origin, ...) : 'origin' must be supplied

如何将YYYY格式的列转换为日期?

1 个答案:

答案 0 :(得分:4)

没有包含日期​​和月份的日期对象。

即使你写:

strptime(as.character(y), "%Y")

这包括一天一个月:

strptime(as.character(1999), "%Y")
[1] "1999-10-07 EEST"

作为一种解决方法,您可以尝试保持年份不变或包括每年的第一天提取年份,如下所示:< / p>

基 - △:

date <- strptime("2012", "%Y")
format(date, "%Y")
[1] "2012"
as.numeric(format(date, "%Y"))
[1] 2012

lubridate:

require(lubridate)
year(date)
[1] 2012