全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3175 5
2015-05-10
我在建立交叉验证的过程中出现了问题,本人初学者,求大神指点,作业今晚要交,很急,谢了
程序如下
> D=2;Z=5;n=nrow(w)#因变量为第二个“STA”
> Fold=function(Z=5,w,D,seed=7777){
+ n=nrow(w);d=1:n;dd=list()
+ e=levels(w[,D]);T=length(e)
+ set.seed(seed)
+ for(i in 1:T){
+ d0=d[w[,D]==e[i]];j=length(d0)
+ ZT=rep(1:Z,ceiling(j/Z))[1:j]
+ id=cbind(sample(ZT,length(ZT)),d0);dd[[i]]=id}
+ mm=list()
+ for(i in 1:Z){u=NULL;
+ for(j in 1:T)u=c(u,dd[[j]][dd[[j]][,1]==i,2])
+ mm[[i]]=u} #mm[[i]]
+ return(mm)}
>
> mm=Fold(Z,w,D,8888)

结果提示错误说:
Error in if (length(x) == 1L && is.numeric(x) && x >= 1) { :
  需要TRUE/FALSE值的地方不可以用缺少值


二维码

扫码加我 拉你入群

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

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

全部回复
2015-5-10 23:07:30
顶一下,很急,谢谢各位
二维码

扫码加我 拉你入群

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

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

2015-5-10 23:17:32
求大神来啊
二维码

扫码加我 拉你入群

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

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

2015-5-10 23:30:32
求大神指点啊
二维码

扫码加我 拉你入群

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

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

2015-5-12 14:21:06
做分类的话你可能少了一句w[,D]=factor(w[,D]),将因变量因子化一下。
下面是试过的代码,做分类用的:

D=10;Z=5;n=nrow(w);w[,D]=factor(w[,D])
Fold=function(Z=5,w,D,seed=7777){
  n=nrow(w);d=1:n;dd=list()
  e=levels(w[,D]);T=length(e)# 因变量T 类
  set.seed(seed)
  for(i in 1:T){
    d0=d[w[,D]==e];j=length(d0)
    ZT=rep(1:Z,ceiling(j/Z))[1:j]
    id=cbind(sample(ZT,length(ZT)),d0);dd[]=id}
  # 上面每个dd[] 是随机1:Z 及i 类的下标集组成的矩阵
  mm=list();for(i in 1:Z){u=NULL;
                          for(j in 1:T)u=c(u,dd[[j]][dd[[j]][,1]==i,2])
                          mm[]=u};return(mm)}# 输出Z 个下标集

二维码

扫码加我 拉你入群

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

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

2016-12-21 15:52:50
这个问题你解决了么?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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