1. ホーム
  2. r

[解決済み] ルブリデートのR配列

2023-04-25 22:54:10

質問

こんにちは、私はlubridateで日付のシーケンスを取得しようとしています。

これは動作しません

seq(ymd('2012-04-07'),ymd('2013-03-22'),by=week(1))

基本コマンド

seq(as.Date('2012-04-7'),as.Date('2013-03-22'),'weeks')

がありますが、lubridateでこれを行うエレガントな方法があるかどうか知りたいのです。

EDIT

無視してください:自分自身を解決したので、後世のために残している。必要であれば、これを削除してもらってもかまいません。

seq(ymd('2012-04-07'),ymd('2013-03-22'),by='weeks')

トリックを行う

どのように解決するのですか?

ymd は、日付文字列をパースするためのラッパーで POSIXct オブジェクトを返します。

で説明されている標準的な用語を使用するだけでよいのです。 ?seq.POSIXt (ただし lubridate でなく) を使って週を定義します。

seq(ymd('2012-04-07'),ymd('2013-03-22'), by = '1 week')
seq(ymd('2012-04-07'),ymd('2013-03-22'), by = 'weeks')

は動作します。

というように

seq(ymd('2012-04-07'),ymd('2013-03-22'), by = '2 week')

を強制することができます。 lubridate Period クラスオブジェクトを difftime に変換する必要がありますが、それはむしろ不要なようです。

seq(ymd('2012-04-07'),ymd('2013-03-22'), by = as.difftime(weeks(1)))