आर में प्रति समूह अधिकतम मूल्य कैसे प्राप्त करें
अक्सर आप आर में डेटा फ्रेम में प्रत्येक समूह का अधिकतम मूल्य ढूंढना चाह सकते हैं। सौभाग्य से, dplyr पैकेज में फ़ंक्शन का उपयोग करके ऐसा करना आसान है।
यह ट्यूटोरियल बताता है कि निम्नलिखित डेटा फ़्रेम का उपयोग करके इसे कैसे करें:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 34, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 34 6 BG 34 7 BF 39
उदाहरण 1: प्रति समूह अधिकतम मान ज्ञात करें
निम्नलिखित कोड दिखाता है कि प्रति टीम प्रति स्थिति अधिकतम मूल्य कैसे प्राप्त करें:
library(dplyr) #find max value by team and position df %>% group_by (team, position) %>% summarize (max = max(points, na.rm= TRUE )) # A tibble: 4 x 3 # Groups: team [?] team position max 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
उदाहरण 2: प्रति समूह अधिकतम मान वाली पंक्तियाँ लौटाएँ
निम्नलिखित कोड दिखाता है कि प्रति टीम और प्रति स्थिति अधिकतम मान वाली पंक्तियों को कैसे लौटाया जाए:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% filter (points == max(points, na.rm= TRUE )) # A tibble: 5 x 3 # Groups: team, position [4] team position points 1 AG 12.0 2AF 19.0 3 BG 34.0 4 BG 34.0 5BF 39.0
उदाहरण 3: प्रति समूह अधिकतम मान वाली एकल पंक्ति लौटाएँ
पिछले उदाहरण में, दो खिलाड़ी थे जिनके पास टीम ए में अधिकतम अंक थे और जो दोनों स्थिति जी में थे। यदि आप केवल समूह में अधिकतम मूल्य वाले पहले खिलाड़ी को वापस करना चाहते हैं, तो आप स्लाइस का उपयोग कर सकते हैं( ) समारोह। निम्नानुसार कार्य करें:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% slice (which.max(points)) # A tibble: 4 x 3 # Groups: team, position [4] team position points 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
अतिरिक्त संसाधन
संपूर्ण गाइड: आर में डेटा को समूहीकृत और सारांशित कैसे करें
आर में पंक्तियों को कैसे फ़िल्टर करें
आर में डुप्लिकेट लाइनें कैसे हटाएं