गणनाओं और समुच्चयों में NA
mean(), sum() और अन्य aggregate फ़ंक्शन में NA के व्यवहार को नियंत्रित करें।
गणनाओं और समुच्चयों में NA, CoddyKit पर R Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह R Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
na.rm पैरामीटर
R के अधिकांश समुच्चयन फ़ंक्शन na.rm तर्क स्वीकार करते हैं (NA हटाएँ)। इसे TRUE पर सेट करने पर फ़ंक्शन परिणाम की गणना करने से पहले NA मानों को अनदेखा करता है। डिफ़ॉल्ट रूप से na.rm = FALSE होता है, इसलिए NA का प्रसार होता है।
scores <- c(88, NA, 72, 95, NA, 81, 67)
cat('With na.rm=FALSE (default):
')
cat(' mean:', mean(scores), '
') # NA
cat(' sum: ', sum(scores), '
') # NA
cat('With na.rm=TRUE:
')
cat(' mean:', mean(scores, na.rm = TRUE), '
') # 80.6
cat(' sum: ', sum(scores, na.rm = TRUE), '
') # 403na.rm के साथ mean()
mean(x, na.rm = TRUE) गैर-लुप्त मानों का अंकगणितीय माध्य निकालता है। हर कुल लंबाई के बजाय हर उपस्थित मानों की संख्या हर होती है।
temperatures <- c(22.1, NA, 19.8, 25.1, NA, 17.3, 20.0)
cat('Total elements:', length(temperatures), '
')
cat('Present elements:', sum(!is.na(temperatures)), '
')
cat('Mean (na.rm=TRUE):', mean(temperatures, na.rm = TRUE), '
')
# Manual verification
cat('Manual mean:', sum(temperatures, na.rm=TRUE) / sum(!is.na(temperatures)), '
')na.rm के साथ sum()
sum(x, na.rm = TRUE) केवल गैर-NA मानों को जोड़ता है। ऐसे तार्किक वेक्टर में TRUE मानों की गिनती करने या अपूर्ण डेटा से कुल निकालने के लिए यह आवश्यक है, जिसमें NA हो सकते हैं।
sales_daily <- c(1200, NA, 980, 1450, NA, 1100, 890)
cat('Sum (default):', sum(sales_daily), '
') # NA
cat('Sum (na.rm): ', sum(sales_daily, na.rm = TRUE), '
') # 5620
# Count observations meeting a condition (NA-safe)
cat('Days over 1000:', sum(sales_daily > 1000, na.rm = TRUE), '
')na.rm के साथ min() और max()
min() और max() में भी na.rm पैरामीटर होता है। इसके बिना, input में एक भी NA होने पर फ़ंक्शन NA लौटाता है। na.rm = TRUE के साथ उपस्थित मानों की न्यूनतम और अधिकतम सीमाएँ लौटाई जाती हैं।
blood_pressure <- c(120, NA, 135, 118, NA, 142, 125, NA, 130)
cat('Max BP (default):', max(blood_pressure), '
') # NA
cat('Max BP (na.rm): ', max(blood_pressure, na.rm = TRUE), '
') # 142
cat('Min BP (na.rm): ', min(blood_pressure, na.rm = TRUE), '
') # 118
cat('Range (na.rm): ', range(blood_pressure, na.rm = TRUE), '
')na.rm के साथ var() और sd()
विचरण (var()) और मानक विचलन (sd()) भी na.rm का समर्थन करते हैं। ये केवल गैर-लुप्त प्रेक्षणों का उपयोग करके सांख्यिकी की गणना करते हैं और स्वतंत्रता की डिग्री को स्वतः समायोजित करते हैं।
exam_scores <- c(78, 85, NA, 92, 68, 75, NA, 88, 91, NA)
n_valid <- sum(!is.na(exam_scores))
cat('Valid observations:', n_valid, '
')
cat('Mean: ', round(mean(exam_scores, na.rm = TRUE), 2), '
')
cat('SD: ', round(sd(exam_scores, na.rm = TRUE), 2), '
')
cat('Var: ', round(var(exam_scores, na.rm = TRUE), 2), '
')na.rm के साथ median() और quantile()
median() और quantile() अक्सर माध्य की तुलना में असामान्य मानों के प्रति अधिक मज़बूत होते हैं, लेकिन लुप्त मानों को सही ढंग से संभालने के लिए इन्हें भी na.rm = TRUE की आवश्यकता होती है।
incomes <- c(45000, NA, 52000, 48000, NA, 210000, 51000, NA, 49000)
cat('Observations:', sum(!is.na(incomes)), '
')
cat('Median income:', median(incomes, na.rm = TRUE), '
')
cat('Mean income: ', mean(incomes, na.rm = TRUE), '
') # pulled up by 210000
cat('25th pctile: ', quantile(incomes, 0.25, na.rm = TRUE), '
')
cat('75th pctile: ', quantile(incomes, 0.75, na.rm = TRUE), '
')na.rm के साथ prod() और cumsum()
prod(x, na.rm = TRUE) गैर-NA मानों का गुणनफल निकालता है। cumsum() जैसे संचयी फ़ंक्शन में na.rm नहीं होता — पहले लुप्त मान से आगे तक NA का प्रसार होता रहता है।
growth_rates <- c(1.05, NA, 1.03, 1.08, NA, 1.02)
cat('Product of rates:', prod(growth_rates, na.rm = TRUE), '
')
# cumsum propagates NAs
values <- c(10, 20, NA, 40, 50)
cat('cumsum (with NA):', cumsum(values), '
')
# Workaround: replace NA first
filled <- replace(values, is.na(values), 0)
cat('cumsum (NA=0): ', cumsum(filled), '
')लागू करने वाले फ़ंक्शन में na.rm
मैट्रिक्स की पंक्तियों या कॉलमों पर apply() का उपयोग करते समय, ... के माध्यम से फ़ंक्शन को na.rm = TRUE दिया जा सकता है। इससे NA को अनदेखा करते हुए समुच्चय निकाले जाते हैं।
m <- matrix(c(88,NA,72, 95,81,NA, 67,75,90), nrow = 3)
cat('Matrix:
'); print(m)
# Row means ignoring NAs
cat('Row means (na.rm=TRUE):', apply(m, 1, mean, na.rm = TRUE), '
')
# Col means ignoring NAs
cat('Col means (na.rm=TRUE):', apply(m, 2, mean, na.rm = TRUE), '
')na.rm के साथ rowSums() / colSums()
rowSums() और colSums() में अपना na.rm पैरामीटर होता है (इसे ... के माध्यम से नहीं दिया जाता)। na.rm = TRUE का उपयोग करने पर योग में NA को 0 माना जाता है।
sales <- matrix(c(100,NA,80, NA,90,70, 110,85,NA), nrow = 3)
cat('Sales matrix:
'); print(sales)
cat('Row sums (na.rm=F):', rowSums(sales), '
') # NAs propagate
cat('Row sums (na.rm=T):', rowSums(sales, na.rm = TRUE), '
')
cat('Col means (na.rm=T):', colMeans(sales, na.rm = TRUE), '
')तुलना: na.rm=FALSE बनाम TRUE
na.rm = TRUE और FALSE में से किसका उपयोग करना है, यह आपके विश्लेषण के उद्देश्य पर निर्भर करता है: FALSE यह सुनिश्चित करता है कि आपको पता रहे कि डेटा अधूरा है; TRUE उपलब्ध डेटा से सर्वोत्तम अनुमान वाले आँकड़े निकालता है।
# Always check: how much data is missing BEFORE using na.rm=TRUE
collected <- c(78, NA, 85, NA, 91, 74, NA, 88, 82, NA)
pct_missing <- mean(is.na(collected)) * 100
cat('Missing:', round(pct_missing, 1), '% of data
')
if (pct_missing < 20) {
cat('Acceptable: computing mean with na.rm=TRUE
')
cat('Mean:', round(mean(collected, na.rm = TRUE), 2), '
')
} else {
cat('Too much missing data — investigate before computing
')
}उपयोगकर्ता-निर्मित फ़ंक्शनों में na.rm
अपने aggregation functions लिखते समय, उनमें na.rm पैरामीटर शामिल करें और उसे base R functions तक पहुँचाएँ। इससे आपके functions, R के प्रचलित नियमों के अनुरूप बने रहते हैं।
# Custom function with na.rm support
cv <- function(x, na.rm = FALSE) {
# Coefficient of Variation = SD / mean
s <- sd(x, na.rm = na.rm)
m <- mean(x, na.rm = na.rm)
return(s / m)
}
readings <- c(22.1, NA, 19.8, 25.1, NA, 17.3, 20.0)
cat('CV (na.rm=FALSE):', cv(readings), '
') # NA
cat('CV (na.rm=TRUE): ', round(cv(readings, na.rm = TRUE), 4), '
')त्वरित जाँच
mean(c(10, 20, NA, 40), na.rm = TRUE) क्या लौटाता है?
पुनरावलोकन: गणनाओं में NA
बहुत बढ़िया! इस पाठ की मुख्य बातें:
- अधिकांश aggregation functions (
mean,sum,min,max,sd, आदि) मेंna.rmपैरामीटर होता है na.rm = FALSE(डिफ़ॉल्ट) का अर्थ है कि NA आगे भी परिणाम में बना रहता है — यदि कोई भी मान NA है, तो परिणाम NA होगाna.rm = TRUENA मानों को अनदेखा करता है और केवल उपलब्ध मानों से आँकड़ा निकालता हैmean(na.rm=TRUE)का हर, कुल लंबाई नहीं बल्कि गैर-NA मानों की संख्या होता हैna.rm=TRUEके साथ आँकड़े निकालने से पहले हमेशा अनुपलब्ध डेटा का अनुपात जाँचें- R के नियमों का पालन करने के लिए अपने aggregation functions में
na.rmशामिल करें
# Complete summary with na.rm
data_vec <- c(55, NA, 72, 88, NA, 61, 79, NA, 93, 68)
cat('N valid:', sum(!is.na(data_vec)), '
')
cat('Mean: ', round(mean(data_vec, na.rm=TRUE), 2), '
')
cat('Median:', median(data_vec, na.rm=TRUE), '
')
cat('SD: ', round(sd(data_vec, na.rm=TRUE), 2), '
')
cat('Min: ', min(data_vec, na.rm=TRUE), '
')
cat('Max: ', max(data_vec, na.rm=TRUE), '
')एआई शिक्षक के साथ R सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 43
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “गणनाओं और समुच्चयों में NA” पाठ निःशुल्क है?
हाँ — R Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “गणनाओं और समुच्चयों में NA” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। R Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“गणनाओं और समुच्चयों में NA” में मैं क्या सीखूँगा?
mean(), sum() और अन्य aggregate फ़ंक्शन में NA के व्यवहार को नियंत्रित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ R Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या R Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर R Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“गणनाओं और समुच्चयों में NA” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस R Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर R Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- R में NA को समझना
- अनुपलब्ध मानों का पता लगाना और गिनना
- NA मान हटाना और बदलना
- गणनाओं और समुच्चयों में NA