Hi, Alex,
Thank you very much for the coding. It is really helpful. However, this
code itself can not solve all the problem because since there are two
additional requirements for this task (sorry I forgot to mention on the
first place) .
1) the sampling have to be random
2) the last few entries (say b) have to be evenly split into the first b
vectors.
so. based on your code I created my first Julia function and solved the
problem.
function k_fold!(nObs,k)
n=sort(sample(1:nObs,nObs,replace=false))
b=nObs % k
a=(nObs-b)/k
a=convert(Int16,a)
k_fold = Array(Vector{eltype(n)},0)
for i in 1:b
m=sample(n, a+1,replace=false)
push!(k_fold, m)
n=setdiff(n,m)
end
for j in 1:k-b
m=sample(n, a,replace=false)
push!(k_fold, m)
n=setdiff(n,m)
end
return k_fold
end
Thanks again and welcome any further modification to trim this bulky code.