ပြင်ဆင်နည်း- 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

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်