Dplyr का उपयोग करके na लाइनें खोए बिना डेटा फ़्रेम को कैसे फ़िल्टर करें


आप R में dplyr और Tidyr पैकेज में फ़ंक्शंस का उपयोग करके NA मान वाली पंक्तियों को खोए बिना डेटा फ़्रेम को फ़िल्टर करने के लिए निम्नलिखित मूल सिंटैक्स का उपयोग कर सकते हैं:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

ध्यान दें कि यह सूत्र NA मानों को TRUE में बदलने के लिए Tidyr पैकेज से रिप्लेस_na() फ़ंक्शन का उपयोग करता है ताकि फ़िल्टरिंग के दौरान उन्हें डेटा फ़्रेम से हटाया न जाए।

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: dplyr का उपयोग करके NA पंक्तियाँ खोए बिना डेटा फ़्रेम फ़िल्टर करें

मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जिसमें विभिन्न बास्केटबॉल खिलाड़ियों के बारे में जानकारी है:

 #create data frame
df <- data. frame (team=c('A', NA, 'A', 'B', NA, 'C', 'C', 'C'),
                 points=c(18, 13, 19, 14, 24, 21, 20, 28),
                 assists=c(5, 7, 17, 9, 12, 9, 5, 12))

#view data frame
df

  team points assists
1 to 18 5
2 <NA> 13 7
3 A 19 17
4 B 14 9
5 <NA> 24 12
6 C 21 9
7 C 20 5
8 C 28 12

अब मान लीजिए कि हम डेटा फ़्रेम को फ़िल्टर करने के लिए dplyr पैकेज से फ़िल्टर() फ़ंक्शन का उपयोग करते हैं ताकि केवल उन पंक्तियों को शामिल किया जा सके जिनका टीम कॉलम में मान A के बराबर नहीं है:

 library (dplyr)

#filter for rows where team is not equal to 'A'
df <- df %>% filter(team != ' A ')

#view updated data frame
df

  team points assists
1 B 14 9
2 C 21 9
3 C 20 5
4 C 28 12

ध्यान दें कि प्रत्येक पंक्ति जहां टीम कॉलम में मान ए के बराबर है, उसे फ़िल्टर कर दिया गया है, जिसमें वे पंक्तियां भी शामिल हैं जहां टीम कॉलम में मान एनए के बराबर है।

यदि हम उन पंक्तियों को फ़िल्टर करना चाहते हैं जहाँ टीम A के बराबर है और पंक्तियों को NA मानों के साथ रखना चाहते हैं , तो हम निम्नलिखित सिंटैक्स का उपयोग कर सकते हैं:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

#view updated data frame
df

  team points assists
1 <NA> 13 7
2 B 14 9
3 <NA> 24 12
4 C 21 9
5 C 20 5
6 C 28 12

ध्यान दें कि प्रत्येक पंक्ति जहां टीम कॉलम में मान ए के बराबर है, फ़िल्टर किया गया था, लेकिन हमने उन पंक्तियों को रखा जहां टीम कॉलम में मान एनए के बराबर है।

नोट : आप Tidyr रिप्लेस_ना() फ़ंक्शन के लिए संपूर्ण दस्तावेज़ यहां पा सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि dplyr में अन्य सामान्य कार्य कैसे करें:

Dplyr का उपयोग करके पंक्ति संख्या के आधार पर फ़िल्टर कैसे करें
Dplyr का उपयोग करके अनेक स्थितियों के आधार पर फ़िल्टर कैसे करें
Dplyr में “शामिल नहीं” फ़िल्टर का उपयोग कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *