समूहीकृत सारांश और group_by()
समूहों के आधार पर डेटा का समुच्चय करें और प्रति-समूह आँकड़े परिकलित करें।
समूहीकृत सारांश और group_by(), CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
डेटा को समूहित क्यों करें?
डेटा को समूहित करना डेटा विश्लेषण की सबसे शक्तिशाली क्रियाओं में से एक है। पूरे डेटासेट पर आँकड़े निकालने के बजाय, आप उन्हें प्रत्येक समूह के भीतर निकालते हैं। dplyr पैकेज group_by() के बाद summarize() का उपयोग करके इसे सहज बनाता है।
library(dplyr)
# Sample sales data
sales <- data.frame(
region = c('North','North','South','South','East'),
revenue = c(120, 95, 200, 175, 88),
units = c(10, 8, 15, 12, 7)
)
print(sales)group_by() की मूल बातें
group_by(col) डेटा फ़्रेम को इस प्रकार चिह्नित करता है कि इसके बाद की क्रियाएँ प्रति समूह हों। यह डेटा को स्वयं नहीं बदलता—बल्कि समूह-संबंधी मेटाडेटा जोड़ता है। आप एक या अनेक स्तंभों के आधार पर समूह बना सकते हैं।
library(dplyr)
sales <- data.frame(
region = c('North','North','South','South','East'),
revenue = c(120, 95, 200, 175, 88),
units = c(10, 8, 15, 12, 7)
)
# Group by region
grouped <- sales %>% group_by(region)
print(grouped)
print(group_keys(grouped))group_by() के बाद summarize()
summarize() (या summarise()) प्रत्येक समूह को एक पंक्ति में समेटता है। आप नए स्तंभ नाम और लागू किए जाने वाले सारांश फ़ंक्शन निर्धारित करते हैं। सामान्य फ़ंक्शन हैं: n(), mean(), sum(), min(), max()।
library(dplyr)
sales <- data.frame(
region = c('North','North','South','South','East'),
revenue = c(120, 95, 200, 175, 88),
units = c(10, 8, 15, 12, 7)
)
sales %>%
group_by(region) %>%
summarize(
n = n(),
mean_revenue = mean(revenue),
total_units = sum(units)
)n() से गणना
summarize() के भीतर n() प्रत्येक समूह की पंक्तियों की संख्या लौटाता है। इसमें किसी आर्ग्युमेंट की आवश्यकता नहीं होती। किसी शर्त से मेल खाने वाली पंक्तियों की गणना के लिए sum(condition) का उपयोग करें। n_distinct(col) अद्वितीय मानों की गणना करता है।
library(dplyr)
employees <- data.frame(
dept = c('HR','HR','Eng','Eng','Eng','Sales'),
salary = c(55000, 60000, 95000, 105000, 90000, 70000),
senior = c(FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)
)
employees %>%
group_by(dept) %>%
summarize(
count = n(),
senior_count = sum(senior),
avg_salary = mean(salary)
)अनेक स्तंभों के आधार पर समूह बनाना
आप group_by() में अनेक स्तंभ दे सकते हैं। समूह डेटा में मौजूद मानों के प्रत्येक संयोजन से बनते हैं। यह क्रॉस-टैबुलेशन और पदानुक्रमित सारांशों के लिए उपयोगी है।
library(dplyr)
orders <- data.frame(
region = c('North','North','South','South','North','South'),
product = c('A','B','A','B','A','A'),
sales = c(100, 200, 150, 250, 120, 180)
)
orders %>%
group_by(region, product) %>%
summarize(
total_sales = sum(sales),
orders = n(),
.groups = 'drop'
).groups आर्ग्युमेंट
summarize() के बाद परिणाम अंतिम समूह चर को छोड़कर सभी से समूहित रहता है। .groups आर्ग्युमेंट इसे नियंत्रित करता है:
'drop_last'— डिफ़ॉल्ट, अंतिम समूह स्तर हटाता है'drop'— सभी समूह हटाता है'keep'— सभी समूह बनाए रखता है
library(dplyr)
df <- data.frame(
year = c(2022,2022,2023,2023),
quarter = c('Q1','Q2','Q1','Q2'),
revenue = c(100, 120, 130, 150)
)
# .groups = 'drop' ensures ungrouped result
result <- df %>%
group_by(year, quarter) %>%
summarize(total = sum(revenue), .groups = 'drop')
print(result)
print(is.grouped_df(result)) # FALSEungroup() स्पष्ट रूप से
डेटा फ़्रेम से समूह-संबंधी मेटाडेटा हटाने के लिए आप कभी भी ungroup() चला सकते हैं। यह तब महत्वपूर्ण है, जब आप चाहते हैं कि आगे की क्रियाएँ प्रत्येक समूह पर नहीं, बल्कि पूरे डेटा पर लागू हों।
library(dplyr)
df <- data.frame(
dept = c('HR','HR','Eng','Eng'),
salary = c(55000, 60000, 95000, 105000)
)
# Without ungroup: rank is within group
df %>%
group_by(dept) %>%
mutate(rank_in_dept = rank(salary)) %>%
ungroup() %>%
mutate(rank_overall = rank(salary))group_keys() और n_groups()
group_keys() अद्वितीय समूह संयोजन दिखाने वाला डेटा फ़्रेम लौटाता है। n_groups() बताता है कि कितने समूह मौजूद हैं। समूहित क्रियाएँ करने से पहले डेटा की संरचना समझने के लिए ये उपयोगी हैं।
library(dplyr)
df <- data.frame(
country = c('US','US','UK','UK','DE'),
category = c('A','B','A','A','B'),
value = c(10, 20, 15, 25, 30)
)
grouped <- df %>% group_by(country, category)
cat('Number of groups:', n_groups(grouped), '\n')
print(group_keys(grouped))अनेक आँकड़ों के साथ सारांश बनाना
आप एक ही summarize() कॉल में कई सारांश आँकड़े निकाल सकते हैं। गणना, माध्य, माध्यिका, मानक विचलन, न्यूनतम, अधिकतम और कस्टम गणनाओं को एक साथ मिलाएँ।
library(dplyr)
scores <- data.frame(
class = c('A','A','A','B','B','B','C','C'),
score = c(85, 90, 78, 92, 88, 95, 70, 75)
)
scores %>%
group_by(class) %>%
summarize(
n = n(),
mean_score = round(mean(score), 1),
median_score = median(score),
sd_score = round(sd(score), 2),
min_score = min(score),
max_score = max(score)
)समूह-जागरूक mutate()
group_by() के बाद mutate() प्रत्येक समूह के भीतर मानों की गणना करता है, लेकिन सभी पंक्तियाँ बनाए रखता है (summarize() के विपरीत)। यह उन समूह-स्तरीय मापों की गणना के लिए बिल्कुल उपयुक्त है जिन्हें आप प्रत्येक पंक्ति से जोड़ना चाहते हैं।
library(dplyr)
sales <- data.frame(
region = c('East','East','West','West','West'),
rep = c('Alice','Bob','Carol','Dave','Eve'),
revenue = c(150, 200, 120, 180, 160)
)
sales %>%
group_by(region) %>%
mutate(
region_total = sum(revenue),
pct_of_region = round(100 * revenue / sum(revenue), 1)
) %>%
ungroup()समूहों के भीतर फ़िल्टर करना
group_by() के बाद filter() समूह-स्तरीय शर्तों के आधार पर पंक्तियों को फ़िल्टर करता है। उदाहरण के लिए, प्रत्येक क्षेत्र के केवल सर्वश्रेष्ठ प्रदर्शनकर्ता को रखें या उन पंक्तियों को रखें जहाँ मान समूह के माध्य से अधिक हो।
library(dplyr)
sales <- data.frame(
region = c('East','East','West','West','North','North'),
rep = c('Alice','Bob','Carol','Dave','Eve','Frank'),
revenue = c(150, 200, 120, 180, 95, 130)
)
# Keep the top rep per region
sales %>%
group_by(region) %>%
filter(revenue == max(revenue)) %>%
ungroup()त्वरित जाँच
summarize() में .groups = 'drop' आर्ग्युमेंट क्या करता है?
पुनरावलोकन: समूहित सारांश
समूहित सारांशों की मुख्य बातें:
group_by(col)समूह-संबंधी जानकारी जोड़ता है—डेटा अपरिवर्तित रहता है, लेकिन क्रियाएँ समूह-जागरूक हो जाती हैंsummarize()प्रत्येक समूह को एक पंक्ति में समेटता है—n(),mean(),sum()आदि का उपयोग करें.groups = 'drop'सुनिश्चित करता है कि परिणाम समूहित न होungroup()किसी भी चरण पर समूह हटाता हैgroup_keys()समूह स्तरों की जाँच करता है;n_groups()उनकी गणना करता हैmutate()+group_by()पंक्तियों को समेटे बिना समूह-स्तरीय स्तंभ जोड़ता है
library(dplyr)
# Full pipeline example
data.frame(
dept = c('Eng','Eng','HR','HR','Sales'),
salary = c(95000, 110000, 60000, 65000, 75000)
) %>%
group_by(dept) %>%
summarize(
headcount = n(),
avg_salary = mean(salary),
.groups = 'drop'
) %>%
arrange(desc(avg_salary))एआई शिक्षक के साथ R सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 43
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “समूहीकृत सारांश और group_by()” पाठ निःशुल्क है?
हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “समूहीकृत सारांश और group_by()” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“समूहीकृत सारांश और group_by()” में मैं क्या सीखूँगा?
समूहों के आधार पर डेटा का समुच्चय करें और प्रति-समूह आँकड़े परिकलित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“समूहीकृत सारांश और group_by()” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- समूहीकृत सारांश और group_by()
- Window फ़ंक्शन: lag, lead, cumsum
- dplyr में बहु-तालिका Joins
- Tidy Evaluation: {{ }} और .data