観測値のグループ化とZスコアの計算[重複]

Aug 15 2020

私は現在、気候データセットに取り組んでおり、解決できなかった2つの主要な質問があります。

R = https://ufile.io/xnvy4coh

データ= https://ufile.io/u2dszh4x

  1. 対応する列の前にシーズンフィールドを溶かして、次のようなものを生成する方法はありますか? https://imgur.com/dF3gNY0「grow」という名前のシーズン列に、pptの合計と、春と夏のその他すべてのパラメーターの平均を含む新しいクラスを生成したいと思います。私はもともと、その年の列とお互いの列と個々の観測値(spring_ppt_mm、summer_ppt_mm、fall_ppt_mm、winter_ppt_mm、...)でprism_groupedを作成し、そこからmutateを使用して計算しようとしましたが、データを溶かして収集すると、常に不安定になりました結果。

  2. 各シーズンのzスコアを計算しようとすると、このアプローチを使用すると、出力データベースにNaNが入力されます。

    春<-prism_grouped%>%

    filter(season == "spring")%>%

    mutate(z_ppt_mm = scale(ppt_mm))%>%

    mutate(z_tmin_c = scale(tmin_c))%>%

    mutate(z_tmean_c = scale(tmean_c))%>%

    mutate(z_tmax_c = scale(tmax_c))%>%

    mutate(z_vdpmin_hpa = scale(vdpmin_hpa))%>%

    mutate(z_vdpmax_hpa = scale(vdpmax_hpa))

しかし、次のことを行うと有効な結果が得られます。

spring <- filter(prism_grouped,season == "spring")
z_spr_ppt <- scale(spring$ppt_mm) z_spr_tmin <- scale(spring$tmin_c)
z_spr_tmean <- scale(spring$tmean_c) z_spr_tmax <- scale(spring$tmax_c)
z_spr_vdpmin <- scale(spring$vdpmin_hpa) z_spr_vdpmax <- scale(spring$vdpmax_hpa)

現在、2番目の方法ですべてが機能していますが、使用している変数の数を減らしようとしているため、データフレームに含めることを希望しています。任意の提案をいただければ幸いです!

回答

2 RonakShah Aug 16 2020 at 05:45

最初の質問はわかりませんが、2番目の質問ではacross(またはmutate_at古い質問でdplyr)同じ関数を複数の列に適用できます。何かのようなもの :

library(dplyr)

spring <- prism_grouped %>%
  ungroup %>%
  filter(season == "spring") %>%
  mutate(across(ppt_mm:vdpmax_hpa, ~as.numeric(scale(.)), .names = 'z_{col}'))