【发布时间】:2016-03-24 19:51:12
【问题描述】:
我有一个简单的问题,但找不到直接的答案。我有以下类型的列表
my.list=list(a=c(1,2,3),random=1,list=matrix(1:10,nrow=2))
我想根据另一个列表('a','list','random')的顺序更改列表元素的顺序(这里:'a','random'和'list') ,或者因此是列表名称的向量:names(my.other.list):
my.other.list=list(a=c(4,5,6),list=matrix(101:110,nrow=2),random=2)
所以目标是获取这个列表:
my.wanted.list=list(a=c(1,2,3),list=matrix(1:10,nrow=2),random=1)
请注意,两个列表(my.list 和 my.other.list)具有相同的列表名称,并且它们不能按字母顺序排序。
我创建了这个循环:
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)
但是对于一个看似简单的问题,这似乎是一个耗时的解决方案。特别是如果列表更大。那么有没有更简单的方法呢?
谢谢。
【问题讨论】:
-
my.list[names(my.other.list)]呢?