2011-07-29 9 views
11

NA戻って私はおそらく愚かな何かをやって、それを見ていないが、よ:Rのstrptime年と月デリミタは

> strptime("201101","%Y%m") 
[1] NA 

ヘルプのstrptimeから:

% Y年を世紀と
進数(01-12)

+0

* 'strptime' *年月日がすべて指定されている必要があり、どこにも記述されていないというバグが見つかりました:*" strptimeの場合、入力文字列は完全に日付を指定する必要はありません。秒、分、または時がゼロで、指定されていない年、月または日が現在のものです。 "* – smci

答えて

12

として %のM月ちょうどあなたは無視する日フィールド(たとえば、 "01")を貼り付けます。

0123を
R> shortdate <- "201101" 
R> as.Date(paste(shortdate, "01", sep=""), "%Y%m%d") 
[1] "2011-01-01" 
R> 

私は日付とPOSIXctオブジェクト、すなわち、日付と時刻のstrptime()ためas.Date()を好みます。

その後、年と月を取得するためにPOSIXltオブジェクトに解析Dateオブジェクトを変換することができます

R> mydt <- as.Date(paste(shortdate, "01", sep=""), "%Y%m%d") 
R> myp <- as.POSIXlt(mydt) 
R> c(myp$year, myp$mon) 
[1] 111 0 
R> 

これは「年 - 1900年」として、年間の標準POSIXの動作であり、ゼロインデックスヶ月。

+0

Rでは、日の桁がないと言うことはできません。 – userJT