全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1440 7
2016-09-13
我想做的是用一个循环体遍历所有的2变量模型,并计算CV值。用一个list vector(logi)储存glm得出的模型,再将logi[[i]]作为参数传递到cv.glm中,但是这样操作会报错。
下面是我的代码
library(boot)
des=read.table('XXXXX')
k=1
logi=vector('list',15)
cv=rep(0,15)
cost <- function(r, pi = 0) mean(abs(r-pi) > 0.5)
for(i in 5:9){
  for(j in (i+1):10){
    logi[[k]]=glm(V1~des[,i]+des[,j],data = des,family = binomial)
    cv[k]=cv.glm(des,logi[[k]],cost=cost,K=10)$delta[1]
    k=k+1
  }
}
错误信息见图,有大神解答一下吗,谢谢,想了好久
附件列表
屏幕截图 2016-09-12 13.37.45.png

原图尺寸 15.17 KB

屏幕截图 2016-09-12 13.37.45.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-9-13 09:47:07
错误处换成用数据集变量名试试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-9-13 10:03:17
nuomin 发表于 2016-9-13 09:47
错误处换成用数据集变量名试试
错误处是:
cv[k]=cv.glm(des,logi[[k]],cost=cost,K=10)$delta[1]。
这个函数会用到上面那个模型V1~des[,i]+des[,j],data = des,family = binomial
我试过把V1~des[,i]+des[,j]换成V1~V2+V3确实不会报错,但是就不能用循环体了,只能一个一个算
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-9-14 08:59:00
feizheyao 发表于 2016-9-13 10:03
错误处是:
cv[k]=cv.glm(des,logi[[k]],cost=cost,K=10)$delta[1]。
这个函数会用到上面那个模型V1~de ...
用names()【i】函数把变量名提出来
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-9-14 15:02:41

      就本程序来说:大双环中:
     xvars<-names(des)
     xvars<-xvars[!xvars%in%c("V1")]
  for...
      for....
        fm<-paste(xvars[c(i,j)],collapse="+")
        fm<-as.formula("V1~",fm,sep="")
        logi[[k]]<-glm(fm,data=des,family=binomial)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-9-14 15:06:07
fm<-as.formula("V1~",fm,sep=""),改错为
  fm<-as.formula(paste("V1~",fm,sep=""))
#
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群