lm.fit(x,y,offset = offset,singular.ok = singular.ok,…)中的错误:0(非NA)情况调用:lm-> lm.fit

问题描述 投票:0回答:1

我正在尝试运行R应用程序,但收到以下第一个错误:

lm.fit(x,y,offset = offset,singular.ok = singular.ok,...)中的错误:0(非NA)案例通话:lm-> lm.fit

产生错误的代码是:

pppb = lm(Exchange.rate.change ~ Inflation.difference)

我是R的新手,我真的很难发现错误,因此非常感谢您的帮助。这是一个最小的数据集:

Country Inflation.difference    Exchange.rate.change    Developed
Australia   -1.235100000e+000   -3.187000000e+000   1.000000000e+000
Austria 1.550800000e+000    1.478100000e+000    1.000000000e+000
Belgium 1.037100000e+000    3.950000000e-002    1.000000000e+000
Canada  4.610000000e-002    -1.641600000e+000   1.000000000e+000
Chile   -1.841260000e+001   -2.063290000e+001   0.000000000e+000

这是重现该错误所需的最小可运行代码:

ppp = read.table("test.dat",sep="\t", header=TRUE, row.names=NULL)
attach(ppp)
Developed[Developed==1] = "Developed"
newppp = ppp[ppp$Country!="Brazil",]
attach(newppp)
developed = newppp[Developed==1,]
attach(developed)
pppb = lm(Exchange.rate.change ~ Inflation.difference)

这是我得到的第二个错误:

以下对象被掩盖by .GlobalEnv:发达ppp屏蔽了以下对象:国家,发达地区,汇率变动,通货膨胀差异以下对象被by .GlobalEnv屏蔽:发达newppp屏蔽了以下对象:国家,发达地区,汇率变动,通货膨胀差异ppp屏蔽了以下对象:国家,发达地区,汇率变动,通货膨胀差异lm.fit(x,y,offset = offset,singular.ok = singular.ok,...)中的错误:0(非NA)案例通话:lm-> lm.fit执行停止`

r linear-regression eval lm
1个回答
0
投票

tl; dr(如果您愿意)

lm(Exchange.rate.change ~ Inflation.difference, data =ppp,
      subset=Developed==1)

在读取数据后(没有任何其他代码),它似乎工作正常。


attach(ppp)
推荐

attach(),通常not;而是使用data=参数

Developed[Developed==1] = "Developed"

这很奇怪(我认为这不会影响以后的结果);它将数字矢量转换为字符(因此内容为“已开发”或“ 0”)

newppp = ppp[ppp$Country!="Brazil",]

巴西实际上不在您显示给我们的数据集中,因此在这种情况下,它什么也没做

attach(newppp)

attach()多次会使事情变得更加混乱(这是您收到警告的来源)

developed = newppp[Developed==1,]

这是开始出错的地方。附加(已开发)pppb = lm(Exchange.rate.change〜Inflation.difference)

© www.soinside.com 2019 - 2024. All rights reserved.