我有一个yhat变量,它是预测函数的输出,并将其分配给一个数据帧:
x=matrix(rnorm(100*20),100,20)
y=rnorm(100)
cv.fit = cv.glmnet(x, y)
x=matrix(rnorm(100*20),100,20)
yhat = predict(cv.fit, s=cv.fit$lambda.1se, newx=x, type="response")
df = data.frame(ypred = yhat, ytest = y)
head(df)
X1 y
1 0.06816674 0.1609813
2 0.06816674 1.4414283
3 0.06816674 0.4674309
4 0.06816674 0.3306559
5 0.06816674 0.4578457
6 0.06816674 -0.3337405
第一列的名称是X1而不是ypred。如果将yhat放在第二列中,则第二列名称为X1。这是错误吗?
df = data.frame(y_test = y, y_pred = yhat)
head(df)
y_test X1
1 0.1609813 0.06816674
2 1.4414283 0.06816674
3 0.4674309 0.06816674
4 0.3306559 0.06816674
5 0.4578457 0.06816674
6 -0.3337405 0.06816674
,如果我将yhat更改为vector,它会起作用:
df = data.frame(y_test = y, y_pred = as.vector(yhat))
head(df)
y_test y_pred
1 0.1609813 0.06816674
2 1.4414283 0.06816674
3 0.4674309 0.06816674