2015-11-06 120 views
2

我使用as.Date将字符串Aug-2002转换为日期对象,该日期对象仅表示2002年8月份的月份,或者如果必须指定日期,2002年8月1日。无法将月份年份字符串转换为R中的日期

然而

> as.Date(c('07-2002'), "%M-%Y") 
[1] "2002-11-06" 

> as.Date(c('Aug-2002'), "%b-%Y") 
[1] NA 

为什么的第一行代码将其转换为不同的月份和日期?第二个是NA

对于格式符号,我指的是this table

enter image description here

+0

%M是iminutes。 %m是月份。 –

+0

“%b此平台上**当前语言环境中的缩写月份名称**。”你必须指定一天才能得到一个'日期'。 – Roland

+0

@ G.Grothendieck在问题中提到的表是否是错误的表? – Nyxynyx

回答

5

您所遇到的问题是,你有日期,没有日期值。如果没有日期值,format =“%m-%Y”在as.Date中将不起作用。这些选项将解决它们:

as.Date(paste0('01-', c('07-2002')), format="%d-%m-%Y") 

library(zoo) #this is a little more forgiving: 
as.yearmon(c('07-2002'), "%m-%Y") 
as.yearmon(c('Aug-2002'), "%b-%Y") 

as.Date(as.yearmon(c('07-2002'), "%m-%Y")) 
相关问题