非常にシンプルなログファイルのような構造のデータセットがあります。日付範囲に従ってデータをサブセット化したいのですが、1つのパラメーターでしか実行できません。
私のデータは次のようになります:
date_time loc_id node energy kgco2
1 2009-02-27 00:11:08 87 103 0.00000 0.00000
2 2009-02-27 01:05:05 87 103 7.00000 3.75900
3 2009-02-27 02:05:05 87 103 6.40039 3.43701
4 2009-02-27 03:05:05 87 103 4.79883 2.57697
5 2009-02-27 04:05:05 87 103 4.10156 2.20254
6 2009-02-27 05:05:05 87 103 2.59961 1.39599
ファイルには1年分のデータが含まれています。毎月、おそらく1週間の要約プロットを作成します
次のようにdate_timeを処理しています。
> dt <-as.POSIXlt(ae$date_time)
> ae$dt <- dt
> names(ae$dt)
[1] "sec" "min" "hour" "mday" "mon" "year" "wday" "yday" "isdst"
今私はデータを次のようにサブセット化しようとしています:
> x <- ae$energy[ae$dt$year=="110" & ae$dt$mon=="10"]
> x
numeric(0)
「110」は次の理由によります。
> range(ae$dt$year)
[1] 109 110
私も運が悪いので以下を試しました:
> d <- subset(ae, (dt$year=="110" & dt$mon=="10"), select=energy)
ただし、これらは機能します:
> d <- subset(ae, dt$year=="110", select=energy)
これもそうです
> d <- subset(ae, dt$mon=="10", select=energy)
年と月の両方を選択してサブセット化する方法についてのアイデアはありますか?
おかげで、
2
POSIXltオブジェクトのコンポーネントは文字ではなく数値/整数であるため、コードは機能しません。しかし、シェーンが言ったように、あなたは本当に時系列クラスを使うべきです...
—
ジョシュア・ウルリッヒ
ええ、あなたが気づいたら、私はすでに数日前に解決策を投稿しました。
—
Gガルシア