1

summer.q.0時間 (X) と 4 つの温度 (X0、X0.33、X0.66、X1) を含むというデータ フレームがあります。特定の時間に行を抽出するデータ フレームをサブセット化する必要があります。ここheadに私のデータフレームがあります:

                   X     X0  X0.33  X0.66     X1
1 6/28/2009 19:30:00 30.760 27.340 25.800 24.600
2 6/28/2009 19:32:24 30.740 27.352 25.804 24.599
3 6/28/2009 19:35:16 30.740 27.363 25.807 24.599
4 6/28/2009 19:38:44 30.740 27.372 25.808 24.599
5 6/28/2009 19:40:00 30.740 27.375 25.809 24.599
6 6/28/2009 19:42:24 30.703 27.379 25.810 24.599
7 6/28/2009 19:45:16 30.703 27.384 25.810 24.599
8 6/28/2009 19:48:44 30.703 27.390 25.811 24.599

Xの分単位の時間は、ランダムな時間に発生します。X列の分単位の時間が 15 分の行 (つまり、分 = 00、30、または 45の行) を抽出する必要があります。データ フレームでは、X列の値は係数です。必要な行を抽出するには、認識可能な R 時間形式に変換する必要があることは認識していますが、最善または最も簡単な方法はわかりません。次にX、適切な R の日付と時刻の形式に変換した後、必要な行を抽出/サブセット化する最も簡単な方法は何ですか?

例: データ フレームが 8 行上にあると仮定すると (完全なデータ セットには 33601 行あり、温度時系列データがモデル化されています)、サブセットは次のようになり、新しい時間形式は次のようになります。 :

                    X     X0  X0.33  X0.66     X1
1 2009-06-28 19:30:00 30.760 27.340 25.800 24.600
2 2009-06-28 19:45:16 30.703 27.384 25.810 24.599

サブセットでは、分が正確に 00、33、および 45 (15 分のデータ) であるすべての行をサブセット化する必要があります。これにより、既に 15 分間隔であり、時刻がPOSIXltフォーマットされている測定データ セットと比較できます。したがって、サブセットには、8 行の元のデータ フレームからの行 1 と 7 が含まれます。理想的には、サブセットに秒を設定します ==00; これが簡単に達成できるかどうかはわかりません。理由は、モデル化されたデータと測定されたデータが正確に一致しないため、両方のデータ セットのプロットを比較する際に秒数はそれほど重要ではないからです。これが理にかなっていることを願っています。ありがとう!

4

2 に答える 2

0

もう少し完全な例を提供していただければ、さらに多くのことをお手伝いできますが、これで始めることができます。

library(lubridate)

#this will return just the minutes from a date (I've added a random example to demonstrate this)
your_data$X <- format(mdy_hms(df$X, format="%M")
example <- format(mdy_hms("6/28/2009 19:30:00"), format="%M")

#you can then subset your data frame using something like this
subset_data <- subset(your_data,X == "0" | X=="30"| X=="45")
于 2015-11-13T17:18:00.317 に答える