Gözlemleri gruplama ve Z puanlarını hesaplama [kopya]

Aug 16 2020

Şu anda bir iklim veri seti üzerinde çalışıyorum ve çözemediğim iki ana sorum var.

R = https://ufile.io/xnvy4coh

Veri = https://ufile.io/u2dszh4x

  1. Sezon alanını ilgili sütunundan önce eritmenin bir yolu var mı, böylelikle böyle bir şey verir https://imgur.com/dF3gNY0İlkbahar ve yaz ayları için ppt toplamını ve diğer her parametrenin ortalamasını içeren "büyüme" adlı sezon sütununda yeni bir sınıf oluşturmak istiyorum. Başlangıçta prism_grouped ile yıl için bir sütun ve her bir sütun ve bireysel gözlem (bahar_ppt_mm, summer_ppt_mm, fall_ppt_mm, winter_ppt_mm, ...) ve oradan mutat kullanarak hesaplamak, ancak verileri eritmek ve toplamak bana her zaman şaşkınlık verdi Sonuçlar.

  2. Her sezon için z puanını hesaplamaya çalışırken, bu yaklaşımı kullandığımda çıktı veritabanına NaN doldurulur:

    bahar <- prism_grouped%>%

    filtre (sezon == "bahar")%>%

    mutate (z_ppt_mm = ölçek (ppt_mm))%>%

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

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

    mutate (z_tmax_c = ölçek (tmax_c))%>%

    mutate (z_vdpmin_hpa = ölçek (vdpmin_hpa))%>%

    mutate (z_vdpmax_hpa = ölçek (vdpmax_hpa))

ancak aşağıdakileri yaparsam geçerli bir sonuç alırım:

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)

Şu anda ikinci yöntemle çalışan her şeye sahibim, ancak çalıştığım değişkenlerin sayısını azaltmaya çalışıyorum ve bunları veri çerçevelerinde bulundurmayı tercih ediyorum. Herhangi bir öneri memnuniyetle karşılanacaktır!

Yanıtlar

2 RonakShah Aug 16 2020 at 05:45

İlk soruyu anlamıyorum, ancak ikincisi için aynı işlevi birden çok sütuna uygulamak için across(veya mutate_ateski olarak dplyr) kullanabilirsiniz. Gibi bir şey :

library(dplyr)

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