मुख्य सामग्री पर जाएँ

R में लापता मानों को संभालने के लिए na.rm का उपयोग कैसे करें

हम सामान्य R फ़ंक्शनों में na.rm = TRUE सेट करते हैं ताकि लापता (NA) मानों को बाहर रखा जा सके। इससे हम सटीक आँकड़े गणना कर पाते हैं और अपने परिणामों की विश्वसनीयता बढ़ती है।
· 8 मि॰ पढ़ें

AI के साथ खोजें

महत्वपूर्ण व्यावसायिक निर्णयों को आगे बढ़ाने के लिए डेटा का उत्पादन और उपभोग औद्योगिक गति से हो रहा है। हालांकि, डेटा विश्लेषण की एक आम चुनौती लापता मानों की मौजूदगी है। यह परिणामों को तिरछा कर सकता है, जिससे किसी भी डेटा विश्लेषक के लिए इन्हें प्रभावी ढंग से संभालना अनिवार्य हो जाता है। R में, लापता मानों को प्रबंधित करने के लिए एक बुनियादी साधन na.rm पैरामीटर है।

यह पोस्ट बताती है कि लापता डेटा को संभालना क्यों महत्वपूर्ण है, R में na.rm कैसे काम करता है, इसे विभिन्न फ़ंक्शनों में कैसे उपयोग किया जाता है, और अंत में लापता डेटा की पहचान और हैंडलिंग के कुछ वैकल्पिक तरीकों पर चर्चा करती है।

संक्षिप्त उत्तर: na.rm क्या है?

R में na.rm पैरामीटर का अर्थ है "NA हटाएँ" और यह गणनाओं के दौरान NA (लापता) मानों को अनदेखा करता है। na.rm = TRUE सेट करने पर mean(), sum(), min(), max(), median(), और sd() जैसे फ़ंक्शन लापता मानों से प्रभावित हुए बिना परिणाम निकालते हैं।

na.rm पैरामीटर लोअरकेस में लिखा जाता है और इसमें एक बूलियन मान होता है—TRUE या FALSE। जब हम na.rm = TRUE सेट करते हैं, तो R गणनाओं से NA मानों को बाहर कर देता है। इस पैरामीटर के बिना, यदि डेटा में लापता मान मौजूद हों, तो फ़ंक्शन NA लौटाएँगे। देखें:

vector_with_na <- c(1, 2, NA)

sum(vector_with_na, na.rm = TRUE) # removes NA values — returns 3
sum(vector_with_na) # includes NA values — returns NA
sum(vector_with_na, na.rm = FALSE) # includes NA values — returns NA

बेसिक R प्रोग्रामिंग पर और जानकारी के लिए Introduction to R कोर्स देखें।

na.rm का उपयोग क्यों करें?

लापता मानों को संभालना सटीक परिणाम सुनिश्चित करने के लिए डेटा विश्लेषण में महत्वपूर्ण है, क्योंकि ये सांख्यिकीय गणनाओं को काफी प्रभावित कर सकते हैं और अनजाने में गलत निष्कर्षों तक पहुँचा सकते हैं। na.rm का उपयोग करके हम इन लापता मानों को छोड़ते हुए त्रुटियों से बच सकते हैं, जिससे विश्वसनीय गणनाएँ होती हैं और डेटा की अखंडता बनी रहती है।

Data Cleaning in R कोर्स हमारे डेटा विश्लेषण कौशल को आगे बढ़ाने में उपयोगी है।

na.rm के साथ सामान्य फ़ंक्शन: कुछ व्यावहारिक उदाहरण

अब समझते हैं कि R में na.rm का उपयोग कैसे करें। कई R फ़ंक्शन na.rm पैरामीटर को शामिल करते हैं (डिफ़ॉल्ट रूप से FALSE रहता है)। यहाँ कुछ आम उदाहरण दिए गए हैं:

sum()

नाम से स्पष्ट है कि sum() किसी वेक्टर के मानों का कुल निकालता है। चलिए vector_with_na नाम का एक वेक्टर बनाते हैं, जिसे हम पूरे ट्यूटोरियल में इस्तेमाल करेंगे।

vector_with_na <- c(1, 2, NA, 4)

sum(vector_with_na) 
# Returns NA

sum(vector_with_na, na.rm = TRUE) 
# Returns 7

mean()

उसी उदाहरण का उपयोग करते हुए, mean() फ़ंक्शन औसत, यानी वेक्टर के मानों का माध्य निकालता है।

mean(vector_with_na) 
# Returns NA

mean(vector_with_na, na.rm = TRUE) 
# Returns 2.33

sd()

vector_with_na के साथ जारी रखते हुए, sd() वेक्टर का मानक विचलन निकालता है।

sd(vector_with_na) 
# Returns NA

sd(vector_with_na, na.rm = TRUE) 
# Returns 1.53

min()

min() न्यूनतम मान ढूँढ़ता है।

min(vector_with_na) 
# Returns NA

min(vector_with_na, na.rm = TRUE) 
# Returns 1

max()

max() अधिकतम मान ढूँढ़ता है।

max(vector_with_na) 
# Returns NA

max(vector_with_na, na.rm = TRUE) 
# Returns 4

median()

median() मानों को क्रम में लगाने पर बीच का मान बताता है।

median(vector_with_na) 
# Returns NA

median(vector_with_na, na.rm = TRUE) 
# Returns 2

ध्यान दें कि na.rm = TRUE न होने पर ये सभी समग्र फ़ंक्शन NA लौटाते हैं।

na.rm = TRUE सेट करने पर ये फ़ंक्शन NA मानों को बाहर कर देते हैं, जिससे गणनाएँ सटीक और सार्थक बनती हैं। इन फ़ंक्शनों के उपयोग और सिंटैक्स को बेहतर समझने के लिए R Programming Fundamentals स्किल ट्रैक एक अच्छा संसाधन हो सकता है।

विभिन्न डेटा संरचनाओं में लापता मानों को संभालना

आइए देखते हैं कि अलग-अलग डेटा संरचनाओं में लापता मानों को कैसे संभाला जाए। आगे बढ़ने से पहले, यदि आप R डेटा संरचनाओं के बारे में और सीखना चाहते हैं तो हमारा Mastering Data Structures in the R Programming Language ट्यूटोरियल देखें। 

Vectors

वेक्टर में, na.rm को सीधे फ़ंक्शनों के भीतर उपयोग कर लापता मानों को बाहर रखा जा सकता है। पिछले सेक्शन में दिए गए सभी उदाहरण वेक्टर पर na.rm के इस्तेमाल के ही हैं।

Data frames

डेटा फ़्रेम के लिए, na.rm को विशिष्ट कॉलम पर उपयोग किए गए फ़ंक्शनों के भीतर या पंक्तियों पर apply() के माध्यम से लागू किया जा सकता है, जैसा कि नीचे दिखाया गया है:

apply(X, MARGIN, FUN)

यहाँ:

  • X: एक array, data frame, या matrix

  • MARGIN: यह बताता है कि फ़ंक्शन कहाँ लागू करना है:

    • MARGIN=1 पंक्तियों पर

    • MARGIN=2 कॉलम पर

    • MARGIN=c(1,2) दोनों पंक्तियों और कॉलम पर

  • FUN: कौन सा फ़ंक्शन लागू करना है। mean(), median(), sum(), min(), max() जैसे बिल्ट-इन फ़ंक्शन और यूज़र-परिभाषित फ़ंक्शन लगाए जा सकते हैं।

आइए इस ट्यूटोरियल में संदर्भ के लिए एक डेटा फ़्रेम बनाते हैं।

dataframe_with_na <- data.frame(col1 = c(1, NA, 3, 6), col2 = c(4, 5, NA, 7))

print(dataframe_with_na)
# Returns
#   col1 col2
# 1    1    4
# 2   NA    5
# 3    3   NA
# 4    6    7

apply(dataframe_with_na, 1, mean)
# Returns
# [1] 2.5  NA  NA 6.5

apply(dataframe_with_na, 1, mean, na.rm = TRUE)
# Returns
# [1] 2.5 5.0 3.0 6.5

apply(dataframe_with_na, 2, mean)
# Returns
# col1 col2 
#  NA   NA 

apply(dataframe_with_na, 2, mean, na.rm = TRUE)
# Returns   
#   col1     col2 
# 3.333333 5.333333

Lists

R में lapply() फ़ंक्शन किसी सूची, वेक्टर, या डेटा फ़्रेम के प्रत्येक तत्व पर निर्दिष्ट फ़ंक्शन लागू करता है और समान लंबाई की एक सूची लौटाता है। इस फ़ंक्शन में MARGIN पैरामीटर की आवश्यकता नहीं होती, क्योंकि यह स्वतः सभी तत्वों पर ऑपरेशन लागू करता है।

सिंटैक्स:

lapply(vector_with_na, fun)

यहाँ:

  • vector_with_na: इनपुट सूची, वेक्टर, या डेटा फ़्रेम।
  • fun: इनपुट डेटा के प्रत्येक तत्व पर लागू होने वाला फ़ंक्शन।

सूची के उदाहरण से lapply() समझते हैं। यहाँ हमारे पास कलेक्शन की सूची (item_1 और item_2) है, जिनके तत्व डेटा फ़्रेम (dataframe_with_na) जैसे हैं। हमारा लक्ष्य प्रत्येक कलेक्शन का औसत निकालना है।

list_with_na <- list(item_1=c(1, NA, 3, 6), item_2=c(4, 5, NA, 7))

lapply(list_with_na, mean)
# Returns
# $item_1
# [1] NA
# 
# $item_2
# [1] NA

lapply(list_with_na, mean, na.rm =TRUE)
# Returns
# $item_1
# [1] 3.333333
# 
# $item_2
# [1] 5.333333

sapply() फ़ंक्शन lapply() जैसा ही है, लेकिन यह सूची के बजाय array या matrix लौटाता है। आइए list_with_na और sapply() का उपयोग करते हुए, इसके भीतर प्रत्येक कलेक्शन के मानों का औसत निकालें।

sapply(list_with_na, mean)
# Returns
# a  b 
# NA NA 

sapply(list_with_na, mean, na.rm = TRUE)

# Returns
# a        b 
# 3.333333 5.333333

अब, डेटा फ़्रेम (dataframe_with_na) और sapply() का उपयोग करते हुए प्रत्येक कॉलम के मानों का योग निकालते हैं।

sapply(dataframe_with_na, sum)

# Returns
# col1 col2 
# NA   NA 

sapply(dataframe_with_na, sum, na.rm=TRUE)
# Returns
# col1 col2 
# 10   16

R में डेटा मैनिपुलेशन की व्यापक समझ के लिए Data Manipulation with dplyr कोर्स अत्यधिक अनुशंसित है। यदि आप विशेष रूप से apply() परिवार के फ़ंक्शनों में असहज महसूस करते हैं, तो हमारा Tutorial on the R Apply Family पढ़ें।

na.omit() और complete.cases() की तुलना

na.omit(): यह फ़ंक्शन डेटा फ़्रेम में NA मान वाले सभी पंक्तियों को हटा देता है। इसे एक उदाहरण से समझते हैं:

na.omit(dataframe_with_na)
# Returns
# col1 col2
# 1    1    4
# 4    6    7

complete.cases(): दूसरी ओर, complete.cases() उन पंक्तियों की पहचान करता है जिनमें कोई भी NA मान नहीं है और प्रत्येक पंक्ति के अनुरूप एक बूलियन लौटाता है (NA वाली पंक्तियों के लिए FALSE और इसके विपरीत)। इसे नीचे दिखाए अनुसार डेटा फ़्रेम में गैर-लापता मानों को फ़िल्टर करने के लिए उपयोग किया जा सकता है।

complete.cases(dataframe_with_na)
# Returns
# [1]  TRUE FALSE FALSE  TRUE

dataframe_with_na[complete.cases(dataframe_with_na), ]
# Returns
# col1 col2
# 1    1    4
# 4    6    7

लापता मानों को संभालने की उन्नत तकनीकें

na.rm से आगे, R लापता डेटा को संभालने के लिए उन्नत तरीके प्रदान करता है:

लापता मानों की पहचान के लिए is.na() का उपयोग

is.na() को सीधे किसी वेक्टर या डेटा फ़्रेम पर लागू कर लापता डेटा की पहचान की जा सकती है। यह प्रत्येक लापता मान के अनुरूप TRUE लौटाता है।

is.na(vector_with_na)
# Returns
# [1] FALSE FALSE  TRUE FALSE

is.na(dataframe_with_na)
# Returns
# col1  col2
# [1,] FALSE FALSE
# [2,]  TRUE FALSE
# [3,] FALSE  TRUE
# [4,] FALSE FALSE

इम्प्यूटेशन विधियाँ लागू करना

इम्प्यूटेशन में लापता मानों को अनुमानित मानों, जैसे औसत या माध्यिका, से बदलना शामिल है, जैसा कि नीचे दिखाया गया है:

vector_with_na[is.na(vector_with_na)] <- mean(vector_with_na, na.rm = TRUE)

print(vector_with_na)
# Returns
# [1] 1.000000 2.000000 2.333333 4.000000

dataframe_with_na[is.na(dataframe_with_na)] <- sapply(dataframe_with_na, mean, na.rm=TRUE)
print(dataframe_with_na)
# Returns
# col1     col2
# 1 1.000000 4.000000
# 2 3.333333 5.000000
# 3 3.000000 5.333333
# 4 6.000000 7.000000

summary() फ़ंक्शन का उपयोग

दिलचस्प बात यह है कि summary() फ़ंक्शन लापता मानों को संभालने में na.rm के उपयोग से भिन्न है। डिफ़ॉल्ट रूप से, summary() सार आँकड़े गणना करते समय स्वचालित रूप से लापता मानों को बाहर कर देता है और तत्पश्चात डेटा में मौजूद NA की संख्या बताता है।

आइए वेक्टर vector_with_na पर summary() चलाते हैं:

summary(vector_with_na)
#Returns
#   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#  1.000   1.500   2.000   2.333   3.000   4.000       1

और डेटा फ़्रेम dataframe_with_na पर:

summary(dataframe_with_na)
# Returns
# col1           col2     
# Min.   :1.00   Min.   :4.00  
# 1st Qu.:2.50   1st Qu.:4.75  
# Median :3.00   Median :5.00  
# Mean   :3.25   Mean   :5.25  
# 3rd Qu.:3.75   3rd Qu.:5.50  
# Max.   :6.00   Max.   :7.00 

Intermediate R कोर्स उन लोगों के लिए गहन अंतर्दृष्टि प्रदान करता है, जो अधिक उन्नत डेटा हैंडलिंग तकनीकों में रुचि रखते हैं।

लापता मानों को संभालने के सर्वोत्तम तरीके

लापता मानों को प्रभावी ढंग से संभालने में कुछ सर्वोत्तम प्रक्रियाएँ शामिल हैं:

हमेशा लापता मान जाँचें

गणनाएँ करने से पहले लापता डेटा की सीमा की पहचान करें और उसे समझें। नीचे दिए गए उदाहरण से पता चलता है कि डेटा फ़्रेम में कुल 2 लापता मान हैं।

print(dataframe_with_na)
# Returns
# col1 col2
# 1    1    4
# 2   NA    5
# 3    3   NA
# 4    6    7

sum(is.na(dataframe_with_na))
# Returns
# [1] 2

शर्तीय जाँचें उपयोग करें

हमेशा लापता डेटा की मौजूदगी की पुष्टि करें और उसके अनुसार कोई भी इम्प्यूटेशन तकनीक लागू करें, सुनिश्चित करें कि सभी किनारे के मामले अच्छी तरह संभाले गए हों।

if(any(is.na(dataframe_with_na))) {  
  if (class(dataframe_with_na) == "data.frame") {    
   dataframe_with_na[is.na(dataframe_with_na)] <- sapply(dataframe_with_na, median, na.rm=TRUE)      
  }
}

print(dataframe_with_na)
# Returns
# col1 col2
# 1    1    4
# 2    3    5
# 3    3    5
# 4    6    7

संदर्भ पर विचार करें

समझें कि डेटा क्यों लापता है और उन्हें संभालने के लिए उपयुक्त तरीका चुनें—हटाना या इम्प्यूटेशन।

डेटा विश्लेषण और लापता मानों को संभालने के लिए एक संरचित दृष्टिकोण हेतु Data Cleaning in R कोर्स एक शानदार संसाधन हो सकता है।

निष्कर्ष

na.rm को समझना और उसका उपयोग करना विश्वसनीय और सटीक डेटा विश्लेषण सुनिश्चित करने की कुंजी है। R प्रोजेक्ट्स में na.rm का अभ्यास करें और लापता डेटा को व्यापक रूप से संभालने के लिए उन्नत तकनीकों का अन्वेषण करें।

आगे सीखने के लिए, ये अतिरिक्त संसाधन देखें:

  • Data Cleaning: अपनी डेटा विश्लेषण कौशल को हमारे Data Cleaning in R कोर्स के साथ निखारें।
  • Introduction to R: R प्रोग्रामिंग शुरू करें हमारे Introduction to R कोर्स के साथ।
  • Data Visualization: आकर्षक विज़ुअल्स बनाना सीखें हमारे Introduction to Data Visualization with ggplot2 कोर्स के साथ।
  • Data Manipulation: अपनी डेटा रूपांतरण तकनीकों में सुधार करें हमारे Data Manipulation with dplyr कोर्स के साथ।
  • Regression Analysis: रिग्रेशन तकनीकों में डुबकी लगाएँ और आँकड़ों को सीखें हमारे Introduction to Regression in R कोर्स के साथ।
Vidhi Chugh

लेखक

Vidhi Chugh

मैं एक एआई रणनीतिकार और नैतिकतावादी हूं, जो डेटा साइंस, प्रोडक्ट और इंजीनियरिंग के संगम पर स्केलेबल मशीन लर्निंग सिस्टम बनाने का काम करता/करती हूं। दुनिया के "टॉप 200 बिज़नेस और टेक्नोलॉजी इनोवेटर्स" में सूचीबद्ध, मेरा लक्ष्य मशीन लर्निंग को सबके लिए सुलभ बनाना और जटिल शब्दावली को सरल करना है, ताकि हर कोई इस परिवर्तन का हिस्सा बन सके।

Frequently Asked Questions

R में na.rm पैरामीटर क्या है?

R में na.rm पैरामीटर का अर्थ है "NA remove"। जब इसे TRUE पर सेट किया जाता है, तो यह फ़ंक्शनों को गणनाओं के दौरान NA (लापता) मानों को अनदेखा करने का निर्देश देता है, जिससे सटीक परिणाम सुनिश्चित होते हैं।

सामान्य R फ़ंक्शनों में na.rm का उपयोग कैसे करते हैं?

आप sum(), mean(), sd(), min(), max(), और median() जैसे फ़ंक्शनों में na.rm = TRUE सेट करके na.rm का उपयोग कर सकते हैं, ताकि गणनाओं से लापता मानों को बाहर रखा जा सके।

डेटा विश्लेषण में लापता मानों को संभालना महत्वपूर्ण क्यों है?

लापता मान परिणामों को तिरछा कर सकते हैं और गलत निष्कर्षों तक पहुँचा सकते हैं। उन्हें प्रभावी ढंग से संभालने से विश्वसनीय गणनाएँ होती हैं और डेटा की अखंडता बनी रहती है।

क्या R में na.rm का उपयोग डेटा फ़्रेम और सूचियों के साथ किया जा सकता है?

हाँ, na.rm को डेटा फ़्रेम के साथ apply() जैसे फ़ंक्शनों, और सूचियों के साथ lapply() तथा sapply() के ज़रिए उपयोग किया जा सकता है, ताकि इन डेटा संरचनाओं पर ऑपरेशनों के दौरान लापता मानों को बाहर रखा जा सके।

R में लापता मानों को संभालने की कुछ उन्नत तकनीकें क्या हैं?

na.rm से आगे, उन्नत तकनीकों में लापता मानों की पहचान के लिए is.na() का उपयोग, उन्हें बदलने के लिए इम्प्यूटेशन विधियाँ लागू करना, और अधिक जटिल डेटा सफाई के लिए na.omit() तथा complete.cases() जैसे फ़ंक्शनों का लाभ उठाना शामिल है।

विषय