Учитывая матрицу определенного размера, вы можете сгенерировать случайные матрицы строк / столбцов как таковые
#create fake data
mydata.block1 <- matrix (rep(1, times=100), ncol=10)
mydata.block2 <- matrix (rep(0, times=900), ncol=90)
mydata.block3 <- matrix (rep(0, times=900), ncol=10)
mydata.block4 <- matrix (rep(1, times=8100), ncol=90)
mydata <- rbind(cbind (mydata.block1, mydata.block2), cbind (mydata.block3, mydata.block4))
#Mix mydata
mix.order <- sample(1:dim (mydata)[1])
mydata <- mydata[mix.order,mix.order]
#create 100 random orderings
##preallocate matrix
rand.samp <- matrix (rep(NA, times=10000), ncol=100)
##create orderings
for (i in 1:100){
rand.samp[i,] <- sample(1:dim (mydata)[1])
}
##Eliminate duplicate orderings (unlikely to occur)
rand.samp <- unique (rand.samp)
#Reorder and measure fitness
##preallocate fitness measure
fit.meas <- rep (NA, times=100)
for (i in 1:100){
mydata.reordered <- mydata[rand.samp[i,],rand.samp[i,]]
fit.meas[i] <- myfitnessfunc(mydata.reordered)
}
После того, как вы измерили пригодность, вам потребуется какой-то способ определить, какие области способствуютфитнес и исправить те, изменяя другие области («породы»).Возможно, dist () будет полезен.Может быть, тепловая карта или кластеризация, hclust (), также будет полезна?Можете ли вы дать более подробную информацию о том, как вы будете определять локализованную пригодность?