整数値と場合によってはNAを含むRのデータフレームの列を平均したいと思います。
CD6(Climate Division 6)と呼ばれるデータフレーム。NA値で初期化され、Climate Division 6に属するすべてのデータの平均値を格納します。行は日付で、列は0から23までの時間を表します。データフレームは次のようになります。
> CD6
Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
1948-07-01 NA NA NA NA NA NA NA NA NA NA NA ... NA
1948-07-02 NA NA NA NA NA NA NA NA NA NA NA ... NA
1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
CAと呼ばれるデータフレームは、1から7までのすべての気候区分の真の値を持っています。データフレームは次のようになります。
> CA
Climate_Division Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
6 1948-07-01 NA NA NA NA NA NA NA NA NA NA NA ... NA
5 1948-07-01 0 1 1 3 0 0 0 0 0 0 0 ... 2
6 1948-07-01 0 1 1 3 0 0 0 0 0 0 0 ... 2
6 1948-07-01 1 0 0 5 7 0 1 1 1 0 0 ... 0
6 1948-07-02 0 2 1 2 1 1 NA 0 1 0 1 ... 2
6 1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
データフレームCAを行ごとに反復し、気候区分の正しいデータフレーム(この例では気候区分6のCD6)にマップするforループがコード化されています。問題は、それを適切に平均化するために、各気候区分に属する行がいくつあるかわからないことです。
CD6だけを見て、真の値が存在する場合はNAを無視し、最終的な答えが整数(値の上限)である特定の時間の各日付の平均を取得したいと思います。さまざまな気候区分のすべての時間がNAの値を持っている場合、0とは反対になるように維持したいと思います。CD6の最終結果は次のようになります。
> CD6
Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
1948-07-01 1 1 1 4 4 0 1 1 1 0 0 ... 1
1948-07-02 0 2 1 2 1 1 NA 0 1 0 1 ... 2
1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
私はそれをコーディングして熟練させるためにこれをどうやって行うのか正確にはわかりません。だからどんな提案も役に立ち、あなたの時間をありがとう。