【发布时间】:2021-07-07 10:44:24
【问题描述】:
一个可重现的数据:
dat1 <- matrix(0, nrow = 9, ncol = 2)
dat1[,1] <- rep(1:3,3)
dat1[,2] <- c(1,1,1,2,2,2,3,3,3)
dat2 <- list()
dat2[[1]] <- matrix(c(1,2,1,3), nrow = 2, ncol = 2)
dat2[[2]] <- matrix(c(1,1,2,3,1,3), nrow = 3, ncol = 2 )
> dat1
[,1] [,2]
[1,] 1 1
[2,] 2 1
[3,] 3 1
[4,] 1 2
[5,] 2 2
[6,] 3 2
[7,] 1 3
[8,] 2 3
[9,] 3 3
> dat2
[[1]]
[,1] [,2]
[1,] 1 1
[2,] 2 3
[[2]]
[,1] [,2]
[1,] 1 3
[2,] 1 1
[3,] 2 3
我有一个矩阵 (dat1) 和一个列表 (dat2)。
dat1 的某些行与 dat2 的某些列表元素相同。我的目标是找出与 dat2 匹配的 dat1 的相应行号并将它们存储在一个列表中。输出示例:
> ex.result
[[1]]
[,1]
[1,] 1
[2,] 8
[[2]]
[,1]
[1,] 7
[2,] 1
[3,] 8
我正在寻找一种不使用耗时循环的快速方法。
【问题讨论】:
标签: r list matrix conditional-statements apply