将数值转换为日期

用户名

我有一个如下的数值向量

aa <- c(1022011, 2022011, 13022011, 23022011) (this vector is just a sample, it is very long)

值的写入方式是第一个值是天,然后是月,然后是年。

我现在正在做的是

as.Date(as.character(aa), %d%m%Y")

但,

如果是一位数字的日期,则会引起问题(返回NA)。(即1022011、2022011)。

所以基本上

as.Date("1022011", "%d%m%Y") does not work

as.Date("01022011", "%d%m%Y")  (pasting '0' ahead of the number) works. 

在这种情况下,我想避免粘贴“ 0”。是否有其他(直接)替代方法可将数值一次转换为日期?

爵士乐

根据您的平台,可以使用sprintf以便在开始时添加零。看来Mac可以做到这一点,但考虑到与OP的讨论,Windows 7则不能。

aa <- c(1022011, 2022011, 13022011, 23022011)

as.Date(sprintf("%08s", aa), format = "%d%m%Y")

[1] "2011-02-01" "2011-02-02" "2011-02-13" "2011-02-23"

更新

@CathyG好心地提到sprintf("%08i",aa)在Windows 7上可以使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章