Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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_Regression - Fatal编程技术网

矩阵与R中的训练集大小不匹配时出错

矩阵与R中的训练集大小不匹配时出错,r,regression,R,Regression,我正在为一个项目制作一个岭回归模型。我的trained数据集有2055个OB,包含21个变量,其中预期寿命是我正在研究的。当我使用我的train.mat下面的代码时,我只有1917,并且我在尝试运行岭回归代码时收到错误消息。我可以做些什么来获得要匹配的观察数 代码: 运行第4行时出错 glmnet中的错误(train.mat,trainLed$lifeempeating,alpha=1,lambda=grid,: y(2055)中的观察数不等于x(1917)中的行数。由于某些自变量为NA,因此出

我正在为一个项目制作一个岭回归模型。我的
trained
数据集有2055个OB,包含21个变量,其中
预期寿命
是我正在研究的。当我使用我的
train.mat
下面的代码时,我只有1917,并且我在尝试运行岭回归代码时收到错误消息。我可以做些什么来获得要匹配的观察数

代码:

运行第4行时出错 glmnet中的错误(train.mat,trainLed$lifeempeating,alpha=1,lambda=grid,:
y(2055)中的观察数不等于x(1917)中的行数。

由于某些自变量为NA,因此出现该错误,
model.matrix()
将跳过这些行

例如,我们制作了一个类似的数据集,其中100个NAs来自不同的列,我得到了相同的错误:

trainLed = data.frame(matrix(rnorm(2055*11),ncol=11))
colnames(trainLed) = c(paste0("var",1:10),"Lifeexpectancy")
trainLed$var1[1:50] = NA
trainLed$var2[51:100] = NA

train.mat = model.matrix(Lifeexpectancy~.,data=trainLed)
fit.ridge = glmnet(train.mat,trainLed$Lifeexpectancy,alpha=0)

Error in glmnet(train.mat, trainLed$Lifeexpectancy, alpha = 0) : 
  number of observations in y (2055) not equal to the number of rows of x (1955)
将数据子集以获得完整的观察结果:

trainLed = trainLed[complete.cases(trainLed),]
train.mat = model.matrix(Lifeexpectancy~.,data=trainLed)
fit.ridge = glmnet(train.mat,trainLed$Lifeexpectancy,alpha=0)
trainLed = trainLed[complete.cases(trainLed),]
train.mat = model.matrix(Lifeexpectancy~.,data=trainLed)
fit.ridge = glmnet(train.mat,trainLed$Lifeexpectancy,alpha=0)