年、月、日で天気データをタグ付けしました。2つのレベルでグループ化された変数の数の抽出
Date MinT Year Month
1976-01-01 1.1 1976 1
1976-01-02 0.3 1976 1
1976-01-03 1.3 1976 1
データの実行回数は、すべての月間で1976:2016です。このTestDataを呼び出します。
私ができるグループおよびサブセット次のように(それは非常に不格好ですが、私は各ステップをテストしようとしているので、それはある)
temp1 <- TestData %>%
group_by(Year)
temp2 <- temp1 %>%
subset(between(Month, 1, 3))
temp3 <- temp2
v1 <- replace(temp3$minT, temp3$minT >-2.0,0) ### replaces data above the threshold
temp3["v1"] <- v1
index1 <- with(temp3, tapply(X = v1, INDEX = Year, FUN = sum)) ## sums the month 1-3-2 degree values
index2 <- with(temp3, tapply(X = v1, INDEX = Year, FUN = length)) ## counts the number of items in each year for the selected period.
index2
は私に、各月の日数のカウントを提供します。 index1
と2を使用して、「月の天気」のインデックスを作成できます。
私が望むのは、-2以下の日のカウントを得ることができるため、毎月の匹敵する重大度の指標を得ることです。
私はインスタンスをカウントするrle
を使用する場合、いくつかの数ヶ月はゼロインスタンスを持つことになりますのでv1
割り当てが必要であり、彼らはminT
に対するインデックスのコンパイル済みのテーブルを意味し、最終的な集計から落下、year
とmonth
た異なる長さのインデックスベクトルを持っていますRは好きではありません。私はindex2
割り当ての中でFUNとしてrle
を試しましたが、それは日のカウントに達することができませんでした。その割り当て内の長さの範囲値(index3
)も同様です。
年ごとにミニテーブルを生成するのが短く、私は立ち往生しています。誰にも何か提案はありますか?
私はこのデータを次のようにしようとしています: "group_by_ 'の適用可能なメソッドはありません" c'( 'double'、 'numeric' ) " – BobA
' TestData $ Year < - factor(TestData $ Year) 'を試してみてください。そうでなければ、より多くの情報が必要でしょう。 – Birger
ありがとうございました! temp1にデータフレームを宣言すると、group_byが動作するようになりました!しきい値フィルタセグメントで日が生成されました。 – BobA