如何处理R中的错误“ eval(predvars,data,env)中的错误:数字'envir'arg长度不为1”?

当我们不将自变量的参数作为数据帧传递时,会发生此错误。预测函数将针对自变量提供的值来预测因变量的值,我们也可以使用用于创建模型的自变量的值。

示例

请看以下数据帧-

set.seed(1)

x <-rnorm(20)

y <-runif(20,5,10)

df <-data.frame(x,y)

df

输出结果

      x       y

1 -0.62645381 9.104731

2 0.18364332 8.235301

3 -0.83562861 8.914664

4 1.59528080 7.765182

5 0.32950777 7.648598

6 -0.82046838 8.946781

7 0.48742905 5.116656

8 0.73832471 7.386150

9 0.57578135 8.661569

10 -0.30538839 8.463658

11 1.51178117 7.388098

12 0.38984324 9.306047

13 -0.62124058 7.190486

14 -2.21469989 6.223986

15 1.12493092 5.353395

16 -0.04493361 5.497331

17 -0.01619026 6.581359

18 0.94383621 7.593171

19 0.82122120 8.310025

20 0.59390132 7.034151

创建线性模型-

M <-lm(y~x,data=df)

导致错误的预测公式-

predict(M,newdata=df$x,interval="confidence")

Error in eval(predvars, data, env) :

numeric 'envir' arg not of length one

不会导致错误的预测公式-

predict(M,newdata=data.frame(df$x),interval="confidence")

输出结果

      fit    lwr       upr

1 7.642084 6.814446 8.469722

2 7.536960 6.927195 8.146725

3 7.669228 6.738695 8.599762

4 7.353775 6.214584 8.492966

5 7.518031 6.900897 8.135166

6 7.667261 6.744547 8.589975

7 7.497538 6.854767 8.140310

8 7.464980 6.749018 8.180943

9 7.486073 6.821666 8.150480

10 7.600420 6.902430 8.298410

11 7.364611 6.273305 8.455917

12 7.510202 6.885355 8.135048

13 7.641408 6.816180 8.466635

14 7.848187 6.091378 9.604995

15 7.414811 6.530792 8.298831

16 7.566622 6.935903 8.197340

17 7.562892 6.936919 8.188865

18 7.438312 6.639516 8.237107

19 7.454223 6.706932 8.201514

20 7.483722 6.814287 8.153156

如果我们要预测自变量的因变量,我们也可以简单地使用Model对象

示例

predict(M)

输出结果

1 2 3 4 5 6 7 8

7.642084 7.536960 7.669228 7.353775 7.518031 7.667261 7.497538 7.464980

9 10 11 12 13 14 15 16

7.486073 7.600420 7.364611 7.510202 7.641408 7.848187 7.414811 7.566622

17 18 19 20

7.562892 7.438312 7.454223 7.483722

示例

predict(M,interval="confidence")

输出结果

   fit       lwr       upr

1 7.642084 6.814446 8.469722

2 7.536960 6.927195 8.146725

3 7.669228 6.738695 8.599762

4 7.353775 6.214584 8.492966

5 7.518031 6.900897 8.135166

6 7.667261 6.744547 8.589975

7 7.497538 6.854767 8.140310

8 7.464980 6.749018 8.180943

9 7.486073 6.821666 8.150480

10 7.600420 6.902430 8.298410

11 7.364611 6.273305 8.455917

12 7.510202 6.885355 8.135048

13 7.641408 6.816180 8.466635

14 7.848187 6.091378 9.604995

15 7.414811 6.530792 8.298831

16 7.566622 6.935903 8.197340

17 7.562892 6.936919 8.188865

18 7.438312 6.639516 8.237107

19 7.454223 6.706932 8.201514

20 7.483722 6.814287 8.153156

以上是 如何处理R中的错误“ eval(predvars,data,env)中的错误:数字'envir'arg长度不为1”? 的全部内容, 来源链接: utcz.com/z/343392.html

回到顶部