矩阵与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)