質問

私は潤滑剤を使用して、これがとても簡単だと考えました

ymd("2010-01-31")+months(0:23)

しかし、自分が得るものを見てください。それはすべてめちゃくちゃです!

 [1] "2010-01-31 UTC" "2010-03-03 UTC" "2010-03-31 UTC" "2010-05-01 UTC" "2010-05-31 UTC" "2010-07-01 UTC" "2010-07-31 UTC" "2010-08-31 UTC" "2010-10-01 UTC"
[10] "2010-10-31 UTC" "2010-12-01 UTC" "2010-12-31 UTC" "2011-01-31 UTC" "2011-03-03 UTC" "2011-03-31 UTC" "2011-05-01 UTC" "2011-05-31 UTC" "2011-07-01 UTC"
[19] "2011-07-31 UTC" "2011-08-31 UTC" "2011-10-01 UTC" "2011-10-31 UTC" "2011-12-01 UTC" "2011-12-31 UTC"

次に、間隔、期間、期間などの現象に潤滑剤がどのように役立つかを読みます。だから、私は1か月が実際には(365*4+1)/48 = 30.438日で定義されている日数であることを理解しています。だから私は賢くしてそれを書き直そうとしました

ymd("2010-01-31")+ as.period(months(0:23))

しかし、それはただエラーを与えました。

Error in as.period.default(months(0:23)) : 
  (list) object cannot be coerced to type 'double'
役に立ちましたか?

解決

はい、あなたは正しいトリックを見つけました:最初の1日から戻る 来月.

これはベースRのワンライナーとしてです:

R> seq(as.Date("2010-02-01"), length=24, by="1 month") - 1
 [1] "2010-01-31" "2010-02-28" "2010-03-31" "2010-04-30" "2010-05-31"
 [6] "2010-06-30" "2010-07-31" "2010-08-31" "2010-09-30" "2010-10-31"
[11] "2010-11-30" "2010-12-31" "2011-01-31" "2011-02-28" "2011-03-31"
[16] "2011-04-30" "2011-05-31" "2011-06-30" "2011-07-31" "2011-08-31"
[21] "2011-09-30" "2011-10-31" "2011-11-30" "2011-12-31"
R> 

だから必要ありません 潤滑剤 このような単純なタスクには(素晴らしいパッケージである一方)これは必要ありません。さらに、既存のベース機能の過負荷は、私をやや危険だと私に襲っています...

他のヒント

質問を入力することが創造的なエネルギーに焦点を当てる方法は驚くべきことです。私は答えを出したと思います。私は、時間を無駄にする次の貧しい魂のためにここに投稿することもできます。

ymd("2010-02-01")+ months(0:23)-days(1)

次の月の最初の日を指定して、それからシーケンスを生成しますが、1日から1日を差し引いて前月の最終日を取得します。

[1] "2010-01-31 UTC" "2010-02-28 UTC" "2010-03-31 UTC" "2010-04-30 UTC" "2010-05-31 UTC" "2010-06-30 UTC" "2010-07-31 UTC" "2010-08-31 UTC" "2010-09-30 UTC"
[10] "2010-10-31 UTC" "2010-11-30 UTC" "2010-12-31 UTC" "2011-01-31 UTC" "2011-02-28 UTC" "2011-03-31 UTC" "2011-04-30 UTC" "2011-05-31 UTC" "2011-06-30 UTC"
[19] "2011-07-31 UTC" "2011-08-31 UTC" "2011-09-30 UTC" "2011-10-31 UTC" "2011-11-30 UTC" "2011-12-31 UTC"

ちなみに、どうすれば厄介な「UTC」指定を取り除くことができますか。タイムゾーンは、必要なときの命の恩人です。残りの時間は彼らが迷惑です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top