我有一个矩阵列表(每个矩阵中有2行和不同数量的列)。这里感兴趣的是每个矩阵中的第一行。我想要一种有效的方法来查找列表中每个元素的列,该列具有一定的值。列表中每个元素的第一行都包含所有唯一值。请考虑下面的示例列表。
> example <- list(matrix(1:6, nrow = 2), matrix(c(1,5,6,4,3,6,4,6,7,9), nrow = 2), matrix(c(1,7,5,9), nrow = 2))
> example
[[1]]
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[[2]]
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 3 4 7
[2,] 5 4 6 6 9
[[3]]
[,1] [,2]
[1,] 1 5
[2,] 7 9
如果我想找到数字“3”的出现位置,在列表的每个元素的第一行中,返回的对象看起来像,
> index <- matrix(c(1, 2, 3, 2, 3, 0), ncol = 2)
> index
[,1] [,2]
[1,] 1 2
[2,] 2 3
[3,] 3 0
其中输出矩阵表示在第2列的第1个元素中,第3列的第2个元素中出现“3”,而在第3个元素中没有出现。
我可以使用双循环,我希望有一种更有效的方法。