Ho un semplice problema, ma non riesco a trovare una risposta semplice per questo. Ho il seguente tipo di elencoRiordina elementi elenco
my.list=list(a=c(1,2,3),random=1,list=matrix(1:10,nrow=2))
cui desidero cambiare l'ordine degli elementi della lista (qui: 'una', 'Lista' 'casuale' e) secondo l'ordine di un altro elenco (' a', 'lista', 'random'), o in tal modo un vettore di nomi delle liste: i nomi (my.other.list):
my.other.list=list(a=c(4,5,6),list=matrix(101:110,nrow=2),random=2)
quindi l'obiettivo è quello di ottenere questa lista:
my.wanted.list=list(a=c(1,2,3),list=matrix(1:10,nrow=2),random=1)
Si noti che entrambe le liste (my.list e my.other.list) hanno gli stessi nomi di lista, un e che questi non possono essere ordinati alfabeticamente o così.
Ho creato questo ciclo:
my.wanted.list=list()
for(i in 1:length(my.list)){
my.wanted.list[[i]]=my.list[[names(my.other.list)[i]]]
}
names(my.wanted.list)=names(my.other.list)
Ma che sembra come un tempo soluzione per una problema apparentemente semplice. Soprattutto se le liste sono più grandi. Quindi c'è un modo più semplice per farlo?
Grazie.
cosa dire 'my.list [nomi (my.other.list)]'? –