Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
CreateDataPartition不工作_R_Cross Validation_R Caret_Lme4 - Fatal编程技术网

CreateDataPartition不工作

CreateDataPartition不工作,r,cross-validation,r-caret,lme4,R,Cross Validation,R Caret,Lme4,我试图将数据划分为训练集和测试集,以进行交叉验证。我使用下一行分割表示状态的因子变量上的数据,该变量具有多个级别。我根据其他帖子使用了这一行,这表明caret包中的createDataPartition应该在因子中分割 inTrain = createDataPartition(y = LM_full$state, times = 1, p = 0.5, list = F) LM_full_train=LM_full[inTrain,] LM_full_test=LM_full[-inTrain

我试图将数据划分为训练集和测试集,以进行交叉验证。我使用下一行分割表示状态的因子变量上的数据,该变量具有多个级别。我根据其他帖子使用了这一行,这表明
caret
包中的
createDataPartition
应该在因子中分割

inTrain = createDataPartition(y = LM_full$state, times = 1, p = 0.5, list = F)
LM_full_train=LM_full[inTrain,]
LM_full_test=LM_full[-inTrain,]
然后我尝试在训练数据上拟合一个线性模型,并预测测试数据的值,但它总是说我在测试数据中发现了新的水平。我比较了训练数据集和测试数据集的状态级别,它们是相同的,所以看起来训练数据和测试数据中都应该存在一定级别的变量

> unique(LM_full_train$state) == unique(LM_full_test$state)
 [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
[19] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
以下是错误:

> lm2_pred <- predict(lm2, LM_full_test, type = "response")
Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) : 
  factor state has new levels CT, MA, NH, NJ, RI

>lm2_pred一个选项是向模型中添加新级别

lm2$xlevels[["state"]] = union(lm2$xlevels[["state"]] , levels(LM_full_test$state))

这不是很容易复制的。您能否提供一个具有代表性的数据集(如果您不能提供整个数据集),设置一些种子(
set.seed
),并展示您是如何创建模型的?解决方案总是有效的,这样您就不必担心这一点:DUMMIFY factor variable!如果你需要更多的帮助,你需要给我们一个可复制的例子。这需要更多的认可!