与as.Date约会的字符

时间:2014-03-12 11:16:39

标签: r date character

我有一个像这样的字符向量(长度= 1704):

[1] "1871_01" "1871_02" "1871_03" "1871_04" "1871_05" "1871_06" "1871_07" "1871_08" "1871_09" "1871_10" "1871_11" "1871_12"
[13] "1872_01" "1872_02" "1872_03" ...
.
.
.
[1681] "2011_01" "2011_02" "2011_03" "2011_04" "2011_05" "2011_06" "2011_07" "2011_08" "2011_09" "2011_10" "2011_11" "2011_12"
[1693] "2012_01" "2012_02" "2012_03" "2012_04" "2012_05" "2012_06" "2012_07" "2012_08" "2012_09" "2012_10" "2012_11" "2012_12"

我想将此向量转换为日期向量。 为此,我使用:

as.Date(vector, format="%Y_%m")

但它返回" NA" 我试过一个值:

b <- "1871_01"
as.Date(b, format="%Y_%m")
[1] NA
strptime(b, "%Y_%m")
[1] NA

我不明白为什么它不起作用...... 有没有人有线索?

1 个答案:

答案 0 :(得分:1)

如果您以年+月格式定期工作,zoo包可以派上用场,因为它将yearmon视为头等公民(并且与Date个对象兼容函数):

library(zoo)

my.ym <- as.yearmon("1871_01", format="%Y_%m")

print(my.ym)
## [1] "Jan 1871"

str(my.ym)
## Class 'yearmon'  num 1871

my.date <- as.Date(my.date)

print(my.date)
## [1] "1871-01-01"

str(my.date)
## Date[1:1], format: "1871-01-01"