Dplyr का उपयोग करके प्रति समूह ऑफसेट की गणना कैसे करें
आप dplyr पैकेज का उपयोग करके R में समूह-स्थानांतरित मानों की गणना करने के लिए निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:
df %>%
group_by(var1) %>%
mutate(lag1_value = lag(var2, n= 1 , order_by=var1))
नोट : mutate() फ़ंक्शन डेटा फ़्रेम में एक नया वैरिएबल जोड़ता है जिसमें विलंबित मान शामिल होते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।
उदाहरण: dplyr का उपयोग करके समूह द्वारा स्थानांतरित मानों की गणना करें
मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जो अलग-अलग दिनों में दो अलग-अलग दुकानों द्वारा की गई बिक्री को दर्शाता है:
#create data frame df <- data. frame (store=c('A', 'B', 'A', 'B', 'A', 'B', 'A', 'B'), sales=c(7, 12, 10, 9, 9, 11, 18, 23)) #view data frame df blind sales 1 to 7 2 B 12 3 to 10 4 B 9 5 to 9 6 B 11 7 to 18 8 B 23
हम एक नया कॉलम बनाने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं जो प्रत्येक स्टोर के लिए विलंबित बिक्री मूल्यों को प्रदर्शित करता है:
library (dplyr) #calculate lagged sales by group df %>% group_by(store) %>% mutate(lag1_sales = lag(sales, n= 1 , order_by=store)) # A tibble: 8 x 3 # Groups: store[2] store sales lag1_sales 1 to 7 NA 2 B 12 NA 3 to 10 7 4 B 9 12 5 to 9 10 6 B 11 9 7 to 18 9 8 B 23 11
यहां परिणाम की व्याख्या करने का तरीका बताया गया है:
- लैग1_सेल्स का पहला मान NA है क्योंकि स्टोर ए की बिक्री के लिए कोई पिछला मान नहीं है।
- लैग1_सेल्स का दूसरा मान NA है क्योंकि स्टोर बी की बिक्री के लिए कोई पिछला मान नहीं है।
- लैग1_सेल्स का तीसरा मान 7 है क्योंकि यह स्टोर ए का पिछला बिक्री मूल्य है।
- लैग1_सेल्स का चौथा मान 12 है क्योंकि यह स्टोर बी का पिछला बिक्री मूल्य है।
और इसी तरह।
ध्यान दें कि आप लैग() फ़ंक्शन में n का मान बदलकर उपयोग किए गए लैग की संख्या भी बदल सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य गणनाएँ कैसे करें:
Dplyr का उपयोग करके चालू राशि की गणना कैसे करें
आर में समूह द्वारा योग की गणना कैसे करें
आर में प्रति समूह माध्य की गणना कैसे करें