Gözlemleri gruplama ve Z puanlarını hesaplama [kopya]
Ş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
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.
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
İlk soruyu anlamıyorum, ancak ikincisi için aynı işlevi birden çok sütuna uygulamak için across
(veya mutate_at
eski 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}'))