在进行以下代码时:library(boot) cv.error1 = cv.glm(data[,c("Y", "X[,1]")], lm.fit1)$delta[1] cv.error2 = cv.glm(data[,c("Y", paste0("X[,",1:15,"]"))], lm.fit2)$delta[1] cv.error3 = cv.glm(data[,c("Y", paste0("X[,",1:30,"]"))], lm.fit3)$delta[1]。出现了以下问题:Error in `[.data.frame`(data, , c("Y", "X[,1]")) : 选择了未定义的列。请对原代码进行修改
时间: 2024-02-21 08:58:03 浏览: 89
在计算CV值时,需要将X的列名改为字符串形式,使用字符串拼接函数paste0时需要在括号外加引号,修改后的代码如下:
```
cv.error1 = cv.glm(data[,c("Y", "X[,1]")], lm.fit1)$delta[1]
cv.error2 = cv.glm(data[,c("Y", paste0("X[,",1:15,"]"))], lm.fit2)$delta[1]
cv.error3 = cv.glm(data[,c("Y", paste0("X[,",1:30,"]"))], lm.fit3)$delta[1]
```
此外,运行此代码之前需要先运行前面的代码初始化数据。
阅读全文