टिप्पणियों का समूहन करना और Z स्कोर की गणना करना [डुप्लिकेट]

Aug 16 2020

मैं वर्तमान में एक जलवायु डेटा सेट पर काम कर रहा हूं और मेरे पास दो मुख्य प्रश्न हैं जिन्हें मैं हल नहीं कर पाया हूं।

आर = https://ufile.io/xnvy4coh

डेटा = https://ufile.io/u2dszh4x

  1. क्या इसके संबंधित कॉलम से पहले सीज़न फ़ील्ड को पिघलाने का एक तरीका है ताकि यह कुछ इस तरह से पैदावार करे https://imgur.com/dF3gNY0मैं "ग्रो" नाम के सीज़न कॉलम में एक नया वर्ग उत्पन्न करना चाहता हूं जिसमें पीपीटी का योग है और वसंत और गर्मियों के महीनों के लिए हर दूसरे पैरामीटर का मतलब है। मैंने मूल रूप से वर्ष के लिए एक स्तंभ के साथ प्रिज्म_ग्रुप करने की कोशिश की और एक-दूसरे कॉलम और व्यक्तिगत अवलोकन अर्थात (स्प्रिंग_प्प्ट_ मिमी, समर_पर्ट_एमएम, फॉल_प्प्ट_एमएम, विंटर_प्प्ट_एमएम, ...) और इसे म्यूट का उपयोग करके वहां से गणना की लेकिन पिघलने और डेटा इकट्ठा करने से मुझे हमेशा जीत मिली। परिणाम है।

  2. जब मैं इस दृष्टिकोण का उपयोग करते हुए आउटपुट डेटाबेस पर 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)

वर्तमान में मेरे पास दूसरी विधि के साथ काम करने के लिए सब कुछ है लेकिन मैं उन चर की संख्या को कम करने की कोशिश कर रहा हूं जिनके साथ मैं काम कर रहा हूं और उन्हें डेटा फ्रेम में शामिल करना पसंद करूंगा। किसी भी सुझाव की सराहना की जाएगी!

जवाब

2 RonakShah Aug 16 2020 at 05:45

मैं पहले प्रश्न को नहीं समझता लेकिन दूसरे के लिए आप एक ही फ़ंक्शन को कई कॉलम में लागू करने के लिए 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}'))