Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用插入符号创建培训和测试数据时缺少值_R_Statistics_R Caret - Fatal编程技术网

R 使用插入符号创建培训和测试数据时缺少值

R 使用插入符号创建培训和测试数据时缺少值,r,statistics,r-caret,R,Statistics,R Caret,我的问题是,当使用train拟合带有插入符号的模型时,如何处理缺少的值。 我的一小部分数据如下: df <- dput(dat) structure(list(LagO3 = c(NA, NA, NA, 40, 45, NA), RH = c(69.4087524414062, 79.9608383178711, 64.4592437744141, 66.4207077026367, 66.0899200439453, 91.33

我的问题是,当使用train拟合带有插入符号的模型时,如何处理缺少的值。 我的一小部分数据如下:

       df <- dput(dat)
       structure(list(LagO3 = c(NA, NA, NA, 40, 45, NA), RH = c(69.4087524414062, 
       79.9608383178711, 64.4592437744141, 66.4207077026367, 66.0899200439453, 
       91.3353729248047), SR = c(298.928888888889, 300.128888888889, 
       303.688888888889, 304.521111111111, 303.223333333333, 294.716666666667
       ), ST = c(317.9917578125, 317.448253038194, 311.039059244792, 
       312.557927517361, 321.252841796875, 330.512212456597), Tmx = c(294.770359293045, 
       294.897191864461, 295.674552786042, 296.247345044048, 296.108238352818, 
       294.594430242372), CWTE = c(0, 1, 0, 0, 0, 0), CWTW = c(0, 0, 
       0, 0, 0, 0), o3 = c(NA, NA, NA, 52, 55, NA)), .Names = c("LagO3", 
       "RH", "SR", "ST", "Tmx", "CWTE", "CWTW", "o3"), row.names = c("1", 
       "2", "3", "4", "5", "6"), class = "data.frame")
如果有任何建议,我将不胜感激


非常感谢。

您需要使用
train
函数的
na.省略
na.action
参数。正如
na.操作
(类型
?列车
)的文档所述:

用于指定在找到NAs时要采取的操作的函数。默认操作是使过程失败。另一种选择是na.omit,它会导致拒绝任何所需变量上缺少值的情况。(注意:如果给定,则必须命名此参数。)

因此,以下措施将起作用:

model <- train(x = x.training, y = training$o3, 
              method = "lmStepAIC",direction="backward", 
              trControl = control, na.action=na.omit)

model模型我知道,我试过了,但我仍然发现了错误:分位数错误。默认值(y,probs=seq(0,1,length=cuts)):缺少值,如果'na.rm'为FALSE,则不允许NaN。我不知道为什么na.action在这里不起作用…谢谢@user3231352我在你的代码中只能看到
na.pass
而不是
na.omit
。它肯定会与
na一起工作。省略
。我的舞步表演得很完美。我将发布输出。那可能是你的控制文件。请编辑您的问题,让我知道控制功能是什么,您的电话是什么。您好,谢谢。我在没有控制的情况下检查了它,它似乎正常工作(但是,有一个警告:在nominalTrainWorkflow中(x=x,y=y,wts=weights,info=trainInfo,:在重新采样的性能度量中缺少值)。当我使用控件时,问题仍然存在,这只是:如果您进行交叉验证,那么在这种情况下,您可能只会在其中一个重采样中使用NAs。只需在训练功能之外处理NAs。键入
training是的,感谢您的建议,我认为这样可以工作!再次感谢!
 model <- train(x = x.training, y = training$o3,na.action=na.pass, 
                method = "lmStepAIC",direction="backward",trControl = control)
Error in quantile.default(y, probs = seq(0, 1, length = cuts)) : 
  missing values and NaN's not allowed if 'na.rm' is FALSE
model <- train(x = x.training, y = training$o3, 
              method = "lmStepAIC",direction="backward", 
              trControl = control, na.action=na.omit)
> model <- train(x = x.training, y = y.training, method = "lmStepAIC",direction="backward",
+                na.action=na.omit)
Start:  AIC=-129.7
.outcome ~ LagO3 + RH + SR + ST + Tmx + CWTE + CWTW


Step:  AIC=-129.7
.outcome ~ LagO3 + RH + SR + ST + Tmx + CWTE


Step:  AIC=-129.7
.outcome ~ LagO3 + RH + SR + ST + Tmx


Step:  AIC=-129.7
.outcome ~ LagO3 + RH + SR + ST


Step:  AIC=-129.7
.outcome ~ LagO3 + RH + SR


Step:  AIC=-129.7
.outcome ~ LagO3 + RH


Step:  AIC=-129.7
.outcome ~ LagO3


Step:  AIC=-129.7
.outcome ~ 1
...
...
...