टिप्पणियों का समूहन करना और Z स्कोर की गणना करना [डुप्लिकेट]
मैं वर्तमान में एक जलवायु डेटा सेट पर काम कर रहा हूं और मेरे पास दो मुख्य प्रश्न हैं जिन्हें मैं हल नहीं कर पाया हूं।
आर = https://ufile.io/xnvy4coh
डेटा = https://ufile.io/u2dszh4x
क्या इसके संबंधित कॉलम से पहले सीज़न फ़ील्ड को पिघलाने का एक तरीका है ताकि यह कुछ इस तरह से पैदावार करे https://imgur.com/dF3gNY0मैं "ग्रो" नाम के सीज़न कॉलम में एक नया वर्ग उत्पन्न करना चाहता हूं जिसमें पीपीटी का योग है और वसंत और गर्मियों के महीनों के लिए हर दूसरे पैरामीटर का मतलब है। मैंने मूल रूप से वर्ष के लिए एक स्तंभ के साथ प्रिज्म_ग्रुप करने की कोशिश की और एक-दूसरे कॉलम और व्यक्तिगत अवलोकन अर्थात (स्प्रिंग_प्प्ट_ मिमी, समर_पर्ट_एमएम, फॉल_प्प्ट_एमएम, विंटर_प्प्ट_एमएम, ...) और इसे म्यूट का उपयोग करके वहां से गणना की लेकिन पिघलने और डेटा इकट्ठा करने से मुझे हमेशा जीत मिली। परिणाम है।
जब मैं इस दृष्टिकोण का उपयोग करते हुए आउटपुट डेटाबेस पर NaN भर जाता हूं, तो प्रत्येक सीजन के लिए z स्कोर की गणना करने की कोशिश कर रहा हूं:
वसंत <- prism_grouped%>%
फ़िल्टर (सीज़न == "स्प्रिंग")%>%
म्यूटेट (z_ppt_mm = स्केल (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 = स्केल (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)
वर्तमान में मेरे पास दूसरी विधि के साथ काम करने के लिए सब कुछ है लेकिन मैं उन चर की संख्या को कम करने की कोशिश कर रहा हूं जिनके साथ मैं काम कर रहा हूं और उन्हें डेटा फ्रेम में शामिल करना पसंद करूंगा। किसी भी सुझाव की सराहना की जाएगी!
जवाब
मैं पहले प्रश्न को नहीं समझता लेकिन दूसरे के लिए आप एक ही फ़ंक्शन को कई कॉलम में लागू करने के लिए 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}'))