我拿了吴喜之老师的书(56页)跟你的代码对比了一下,主要是输入的代码里面有好多的中括号漏了。。。
下面的是我测试过的。。循环部分,我把i 都改成q。 最后一部分,红色的,是我后面加上去的。因为根据老师的代码,最后得出的mm[[q]] 仍然是一个列表,如果用于后面的例题(58页的,等等)作为训练集、测试集 ‘w[-m,]或者w[m,]’这样的表达是不行的。
不知道你看不看得懂,不过你可以自己先试试。
w <- read.csv('D:/R code/animal2.csv',header = T)
w$cluster_ward50 <- as.factor(w$cluster_ward50)
w$VEGETATION <- as.factor(w$VEGETATION)
d <- 1:370827
dd <- list()
Z <- 5
nn <- levels(w$cluster_ward50)
KL <- length(nn)
for(q in 1:KL)
dd[[q]] <- d[w$cluster_ward50==nn[q]]
kk<- NULL
for(q in 1:KL)
kk <- c(kk,round(length(dd[[q]])/Z))
set.seed(1111)
yy <- list(NULL,NULL,NULL)
for(q in 1:KL){xx <- list()
uu<-dd[[q]]
for(j in 1:(Z-1)){xx[[j]] <- sample(uu,kk[q])
uu<- setdiff(uu,xx[[j]])}
xx[[Z]] <- uu
for(k in 1:Z)
yy[[q]][[k]] <- xx[[k]]}
mm <- list(NULL,NULL,NULL,NULL,NULL)
for(q in 1:Z)
for(j in 1:KL)
mm[[q]] <- c(mm[[q]],yy[[j]][q])
for(q in 1:Z)
mm[[q]]<-unlist(mm[[q]])


雷达卡
京公网安备 11010802022788号







