回答:
format()
クラスのオブジェクトにこのメソッドを使用します"yearmon"
。ここにあなたの例の日付があります(正しく作成されました!)
date1 <- as.yearmon("Mar 2012", "%b %Y")
次に、必要に応じて日付部分を抽出できます。
> format(date1, "%b") ## Month, char, abbreviated
[1] "Mar"
> format(date1, "%Y") ## Year with century
[1] "2012"
> format(date1, "%m") ## numeric month
[1] "03"
これらは文字として返されます。必要に応じて、as.numeric()
年または数値の月が数値変数として必要な場合はラップしてください。たとえば、
> as.numeric(format(date1, "%m"))
[1] 3
> as.numeric(format(date1, "%Y"))
[1] 2012
詳細については?yearmon
、?strftime
を参照してください。後者では、使用できるプレースホルダー文字について説明しています。
vector
要素がn個ある場合、どうすればよいvector
ですか?1つの日付に1k個の日付があるとしましょうか?
date1
日付のベクトルにすることもできます。
lubridateパッケージには、この種のもののために素晴らしいです。
> require(lubridate)
> month(date1)
[1] 3
> year(date1)
[1] 2012
lubridate
ますが、これはパッケージをサポートしておらず、これをインストールしてyear(date)を使用しようとしましたが、年の代わりに日を表示します。これは、「2015-05」の形式の日付でのみ機能します。 -06 "?
使用できますformat
:
library(zoo)
x <- as.yearmon(Sys.time())
format(x,"%b")
[1] "Mar"
format(x,"%Y")
[1] "2012"
as.numeric(format(x, "%m"))
例えば数値としてヶ月。
大きなベクトルの場合:
y = as.POSIXlt(date1)$year + 1900 # x$year : years since 1900
m = as.POSIXlt(date1)$mon + 1 # x$mon : 0–11
POSIXlt
動物園のパッケージが不要になり、オブジェクトを
質問はどのような出力が期待されるかを正確に述べていませんが、月には月番号(1月= 1)が必要であり、年には数値の4桁の年が必要であると仮定して、問題のコードを実行したと仮定します。
cycle(date1)
## [1] 3
as.integer(date1)
## [1] 2012