2

いくつかの気象変数の時系列データセットがあります。時間データは、次の 3 つの列に記録されます。

  1. 年 (例: 2012)
  2. 年間通算日 (例: うるう年の 9 月 17 日を表す 261)
  3. 時:分 (例: 1610)

3 つの列をマージして R で単一のタイムスタンプを作成する方法はありますか? R が Day of Year 変数をどのように処理するかについてはよくわかりません。

これについて助けてくれてありがとう!

4

2 に答える 2

3

を使用してかなり遠くまで行く必要がありますISOdatetime。この関数は、、、、のベクトルをyear入力として受け取りday、時間を表すオブジェクトを出力します。3番目の列を2つの別々の列に分割するだけで、関数を使用できます。hourminutePOSIXcthour minute

于 2012-11-01T10:46:52.383 に答える
3

timeDateパッケージはグレゴリオ暦の時間枠を処理できるようです。私は個人的にそれを使用していませんが、それは簡単に見えます。shift一部のメソッドには、データからのオフセットを設定できる引数があります。

http://cran.r-project.org/web/packages/timeDate/timeDate.pdf

あなたがそれを言及したので、別々の列をマージする実際のコードを示すと思いました。必要な値が別々の列にある場合は、pasteそれらをまとめlubridate::mdyて解析するために使用できます。

library(lubridate)

col.month <- "Jan"
col.year <- "2012"
col.day <- "23"

date <- mdy(paste(col.month, col.day, col.year, sep = "-"))

Lubridate は素晴らしいパッケージです。公式ページは次のとおりです: https://github.com/hadley/lubridate

そして、ここに素晴らしい例のセットがあります: http://www.r-statistics.com/2012/03/do-more-with-dates-and-times-in-r-with-lubridate-1-1-0 /

于 2012-11-01T12:13:42.650 に答える