ပြင်ဆင်နည်း- lm.fit(x၊ y၊ offset = offset၊ …): 'y' တွင် na/nan/inf တွင် error
R ကိုအသုံးပြုရာတွင် သင်ကြုံတွေ့ရနိုင်သည့် အမှားတစ်ခုမှာ-
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...):
NA/NaN/Inf in 'y'
R တွင် linear regression model ကိုအံဝင်ခွင်ကျဖြစ်စေရန်အတွက် lm() လုပ်ဆောင်ချက်ကို အသုံးပြုရန်ကြိုးစားသောအခါတွင် ဤအမှားသည် ဖြစ်ပေါ်လာသည်၊ သို့သော် ခန့်မှန်းသူ သို့မဟုတ် တုံ့ပြန်နိုင်သောကိန်းရှင်တွင် NaN သို့မဟုတ် Inf တန်ဖိုးများပါရှိသည်။
အောက်ဖော်ပြပါ ဥပမာသည် ဤအမှားကို လက်တွေ့တွင် မည်သို့ပြုပြင်ရမည်ကို ပြသထားသည်။
အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။
R တွင် ကစားသည့် မိနစ်များနှင့် ဘတ်စကက်ဘော ကစားသမား အသီးသီးမှ ရမှတ်များအကြောင်း အချက်အလက်များ ပါ၀င်သော အောက်ပါ ဒေတာဘောင် ရှိသည် ဆိုပါစို့။
#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 တန်ဖိုးများသည် ပြဿနာမဟုတ်ကြောင်း သတိပြုသင့်သည်။ တကယ်တော့ R သည် linear regression model နှင့်ကိုက်ညီသောအခါ 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
ရလဒ်သည် regression model ၏ coefficients ကို ပြသသည်။
ကျွန်ုပ်တို့သည် ဒေတာဘောင်ရှိ NaN နှင့် Inf တန်ဖိုးများကို အစားထိုးလိုက်သောကြောင့် မည်သည့်အမှားအယွင်းများကိုမျှ လက်ခံရရှိခြင်းမရှိကြောင်း သတိပြုပါ။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် R တွင် အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြထားပါသည်။
R တွင် ပြုပြင်နည်း- မျှော်လင့်မထားသော စာကြောင်း ကိန်းသေ
R တွင် ပြင်ဆင်နည်း- ExtractVars ရှိ မမှန်ကန်သော နမူနာပုံစံဖော်မြူလာ
R- argument သည် ကိန်းဂဏာန်းမဟုတ်သလို ယုတ္တိလည်းမဟုတ်- return na