从给定另一个列表中的位置的列表中提取元素

时间:2017-09-13 20:18:27

标签: r

我有一个矩阵列表如下。

listMat <- list(A=matrix(1:9, ncol=3), B=matrix(10:18, ncol=3))
listMat 

$A
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

$B
     [,1] [,2] [,3]
[1,]   10   13   16
[2,]   11   14   17
[3,]   12   15   18

我想提取矩阵A的第1列和第2列以及B的第3列。 这些职位在清单中列出。

listPosition <- list(A=c(1,2), B=c(1))
listPosition 
$A
[1] 1 2

$B
[1] 1

有没有办法提取元素而不是使用以下命令

  listMat[["A"]][,1:2] 
  listMat[["B"]][,1] 

2 个答案:

答案 0 :(得分:3)

我们可以使用Map使用matrix

中的索引在list中提取相应的listPosition元素
Map(function(x, y) x[, y, drop = FALSE], listMat, listPosition)

答案 1 :(得分:3)

truckMPG2.Text = truckWeight2.SelectedValue.ToString();