कैसे ठीक करें: lm.fit(x, y, offset = offset,…) में त्रुटि: 'y' में na/nan/inf
R का उपयोग करते समय आपको एक त्रुटि का सामना करना पड़ सकता है:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...):
NA/NaN/Inf in 'y'
यह त्रुटि तब होती है जब आप R में एक रैखिक प्रतिगमन मॉडल को फिट करने के लिए lm() फ़ंक्शन का उपयोग करने का प्रयास करते हैं, लेकिन भविष्यवक्ता या प्रतिक्रिया चर में NaN या Inf मान होते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे ठीक किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जिसमें खेले गए मिनटों और विभिन्न बास्केटबॉल खिलाड़ियों द्वारा बनाए गए अंकों के बारे में जानकारी है:
#create data frame with some NA, NaN, Inf values
df <- data. frame (minutes=c(4, NA, 28, 12, 30, 21, 14),
dots=c(12, NaN, 30, Inf, 43, 25, 17))
#view data frame
df
minutes points
1 4 12
2 NA NaN
3 28 30
4 12 Lower
5 30 43
6 21 25
7 14 17
ध्यान दें कि डेटा फ़्रेम में NaN और Inf मान शामिल हैं।
अब मान लीजिए कि हम भविष्यवक्ता चर के रूप में “मिनट” और प्रतिक्रिया चर के रूप में “अंक” का उपयोग करके एक रैखिक प्रतिगमन मॉडल को फिट करने का प्रयास कर रहे हैं:
#attempt to fit regression model
lm(points ~ minutes, data=df)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...):
NA/NaN/Inf in 'y'
हमें एक त्रुटि प्राप्त होती है क्योंकि NaN और Inf मान डेटा फ़्रेम में मौजूद हैं।
त्रुटि को कैसे ठीक करें
यह ध्यान दिया जाना चाहिए कि डेटा फ़्रेम में NA मान कोई समस्या नहीं है। वास्तव में, रैखिक प्रतिगमन मॉडल को फिट करते समय आर केवल एनए मानों को अनदेखा करता है।
वास्तविक समस्या NaN और Inf मानों के कारण होती है।
इसे ठीक करने का सबसे आसान तरीका NaN और Inf मानों को NA मानों से बदलना है:
#Replace NaN & Inf with NA
df[is. na (df) | df==" Inf "] = NA
#view updated data frame
df
minutes points
1 4 12
2 NA NA
3 28 30
4 12 NA
5 30 43
6 21 25
7 14 17
अब हम प्रतिगमन मॉडल को अनुकूलित कर सकते हैं:
#fit regression model
lm(points ~ minutes, data=df)
Call:
lm(formula = points ~ minutes, data = df)
Coefficients:
(Intercept) minutes
5,062 1,048
परिणाम प्रतिगमन मॉडल के गुणांक दिखाता है।
ध्यान दें कि चूंकि हमने डेटा फ़्रेम में NaN और Inf मानों को बदल दिया है, इसलिए हमें कोई त्रुटि नहीं मिल रही है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
आर में कैसे ठीक करें: अप्रत्याशित स्ट्रिंग स्थिरांक
आर में कैसे ठीक करें: एक्सट्रैक्टवर्स में अमान्य टेम्पलेट फॉर्मूला
आर में कैसे ठीक करें: तर्क न तो संख्यात्मक है और न ही तार्किक: वापसी ना