r - 将数字格式转换为 R 中的 YYYY 日期

标签 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 格式的列转换为日期?

最佳答案

没有日期对象就没有日期和月份。

即使你写:

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

这包括一天和一个月:

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

作为一种解决方法,您可以尝试保持年份不变,或者包括每年的第一天,并在需要时提取年份,如下所示:

基础-r:

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

润滑:

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

关于r - 将数字格式转换为 R 中的 YYYY 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978538/

相关文章:

正则表达式:在 R 中使用 `u` 标志

r - 将两列日期和时间数据转换为一

r - r 中的嵌套 dplyr 循环

oracle - Oracle 中的日期是如何存储的?

python - 长格式的 Pandas 数据框缺少月份

regex - 正则表达式"\\|"在 strsplit 中

java - 以特定格式显示 Java.util.Date

r - 如何将日期和分钟添加到 R 中的日期时间对象?

r - 为什么两个 data.frames 与 lubridate 区间变量的一对多合并会产生 NA 的区间?

R:计算从日落开始的天数