我有一个如下的数值向量
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] 删除。
我来说两句