私はyearmon
オブジェクトを持っている:抽出月と年:: yearmonオブジェクト
require(zoo)
date1 <- as.yearmon("Mar 2012", "%b %Y")
class(date1)
# [1] "yearmon"
は、どのように私はこのから月と年を抽出することができますか?
month1 <- fn(date1)
year1 <- fn(date1)
私はfn()
私はyearmon
オブジェクトを持っている:抽出月と年:: yearmonオブジェクト
require(zoo)
date1 <- as.yearmon("Mar 2012", "%b %Y")
class(date1)
# [1] "yearmon"
は、どのように私はこのから月と年を抽出することができますか?
month1 <- fn(date1)
year1 <- fn(date1)
私はfn()
がクラス"yearmon"
のオブジェクトに対してformat()
メソッドを使用します。ここで(!適切に作成された)あなたの例の日付は、必要に応じて
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
を参照してください - 後者は、使用できるプレースホルダ文字を説明します。
の代わりに使用する必要がありますどのような機能あなたはformat
を使用することができます。
library(zoo)
x <- as.yearmon(Sys.time())
format(x,"%b")
[1] "Mar"
format(x,"%Y")
[1] "2012"
月を数字にするにはどうすればよいですか? (例:Marの場合は3) –
@ user1169210 'format(x、"%m ")' – James
@ user1169210私は私の答えでこれを説明しました。その月の 'as.numeric(format(x、"%m "))'を数値として使います。 –
lubridate packageは、この種のもののために素晴らしいです:
> require(lubridate)
> month(date1)
[1] 3
> year(date1)
[1] 2012
私はOPがここzoo
を使用しているけど、私は同じ問題のための標準ts
解決のためにグーグル、このスレッドを発見しました。だから私はzoo
-freeの答えをts
に追加すると思った。
y = as.POSIXlt(date1)$year + 1900 # x$year : years since 1900
m = as.POSIXlt(date1)$mon + 1 # x$mon : 0–11
数字の4桁の数字を入力してください。
cycle(date1)
## [1] 3
as.integer(date1)
## [1] 2012
これはRが動物園パッケージを不要にする便利な 'POSIXlt'オブジェクトを提供しているので、これは最善の答えです –
質問が予想されるが、月のあなたは月の数(1月= 1)にしたいと仮定して、必要な年間何のためにあるのか、出力を正確述べるませんでした:大きなベクトルの場合
# create an example Date
date_1 <- as.Date("1990-01-01")
# extract year
as.numeric(format(date_1, "%Y"))
# extract month
as.numeric(format(date_1, "%m"))
%B、1月の場合は "3月"の代わりに "Mar"の場合 – PatrickT
もしn要素の 'ベクトル 'があれば、1つの'ベクトル 'で1kの日付を言うことができますか? – Stophface
@ChrisslはRの多くのように、 'date1'は日付のベクトルでもあります。 –