列表(19)矩阵。
if list; then list; [ elif list; then list; ] ... [ else list; ] fi
我需要选择前10个矩阵,当输入到fitness()函数时,它会给出最大的回报。
bulk.list <-list(1:19)
for(i in 1:19) {
bulk.list[[i]]<-matrix(i, 12, 126)
}
我需要将这10个矩阵写入另一个列表(不需要按任何特定顺序)
fitness <- function(S)
{
total=0
for (t in 1:12){
for (i in 1:126){
total=total+(S[t,i])
}
}
return(total)
}
健身功能恰好是资源密集型的,所以我尝试使用它的次数最少。到目前为止,我有健康值
的列表pop.list <-list(1:10)
但是我无法理解如何对这个适应值列表进行排序可以得到10个相应矩阵的所需列表。我可以使用这两个列表创建一个数据框,然后以某种方式对其进行排序吗? 我的输出必须是包含10个具有最高适合度值的矩阵
的列表flist.list=lapply(bulk.list, fitness)
PS:作为stackoverflow noob,请原谅最初缺乏格式化
答案 0 :(得分:0)
我能够通过使用order()然后将订单存储在另一个列表中来实现它
首先,健身存储在flist.list
中flist.list <-list()
for (i in 1:l){
flist.list[[i]]= fitness(bulk[[i]])
}
OR
flist.list=lapply(bulk.list, fitness)
然后我使用了订单功能,并将订单存储在新的数据框
中order1=order(-as.data.frame(fit.list))
最后,我使用该数据帧根据需要将顶部矩阵写入新列表
for (i in 1:10){
poplist.list[[i]]=bulk[[order1[i]]]
}
不是最佳解决方案,但它确实有效。