O que vc considera "tamanho" de "m"? já que "m" é um objeto de duas dimensões. Se considerar o produto das dimensões (número de elementos) poderia fazer algo assim:

um = list(id=1, m=matrix(1:9, nrow=3))
dois = list(id=2, m=matrix(1:4, nrow=2))
tres = list(id=3, m=matrix(1, nrow=1))
quatro = list(id=4, m=matrix(1:6, nrow=3))

lista = list(um, dois, tres,quatro)


(dims=sapply(lista,function(z)prod(dim(z$m))))

(indxs=order(dims))

lapply(indxs,function(z)lista[[z]]) 


Robert

Em 6 de abril de 2015 22:04, David Feitosa <davidfeitosa@gmail.com> escreveu:
Caros, boa noite.

Uma dúvida de ordenação.
Suponha que eu tenha 3 list compostas:

um = list(id=1, m=matrix(1:9, nrow=3))
dois = list(id=2, m=matrix(1:4, nrow=2))
tres = list(id=3, m=matrix(1, nrow=1))

e crie um vetor com as 3 list:

lista = c(um, dois, tres)

Haveria alguma forma de ordená-las pelo tamanho do elemento m,
ou seja, de forma que a lista final fosse equivalente a:

c(tres, dois, um) ?


Atenciosamente,

David Feitosa

(\_(\
(=°;°)
(("")("")

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.