假设我有一个清单:
lst <- list(c(1,2), c(1,0), c(4,1), c(-7,11) )
我想根据其他矢量的元素订购此列表。假设向量:
v<- c(-1, 3, 0, -5)
列表中的第一个元素&#34; lst&#34;与向量的第一个元素有关&#34; v&#34;同样的第2,第3和第4。由于,-5 <-1 <0 <3,所以列表的期望顺序应为:
list(c(-7,11), c(1,2), c(4,1), c(1,0))
这将是最终输出。
答案 0 :(得分:0)
这不是一个存在于某处的线路,而是一种解决方法。为您提供所需的输出。如有必要,您可以调整订单的升序或降序。
lst <- list(c(1,2), c(1,0), c(4,1), c(-7,11) )
v <- c(-1, 3, 0, -5)
new.order <- seq(1:length(v))
ref.frame <- data.frame(v,new.order)
ref.frame <- ref.frame[order(v),]
> ref.frame
v new.order
4 -5 4
1 -1 1
3 0 3
2 3 2
lst <- lst[c(ref.frame$new.order)]
> lst
[[1]]
[1] -7 11
[[2]]
[1] 1 2
[[3]]
[1] 4 1
[[4]]
[1] 1 0