通过使用文本格式的数据(作为打印的矩阵副本,或来自dput 的输出),您的问题将得到改善。
如果没有,这里有一些示例数据:
set.seed(123)
matrices <- replicate(7,
cbind(1:21, rnorm(21, 2, 1), rnorm(21, 99, 3), rnorm(21, 1e5, 1e5)),
simplify = FALSE)
您可以按照以下要求进行操作:
get_rows <- function(mat) {
rbind(mat[which(mat[, 3] > 99)[1], , drop = FALSE],
mat[which(mat[, 2] < 1)[1], , drop = FALSE])
}
desired_row_list <- lapply(matrices, get_rows)
desired_rows <- do.call("rbind", desired_row_list)
这使用指定的标准对每个矩阵进行子集化,始终只返回满足这些标准的第一行。然后它将它们全部连接到一个带有rbind 的矩阵中。
desired_rows
# [,1] [,2] [,3] [,4]
# [1,] 6 3.71506499 101.51336 53334.46
# [2,] 8 0.73493877 95.58559 91663.09
# [3,] 2 0.92820877 99.99535 21509.55
# [4,] 1 0.98142462 98.33854 95497.23
# [5,] 1 2.23538657 101.06375 151686.20
# [6,] 9 -0.05324722 98.15881 103778.84
# [7,] 1 1.50070798 99.35774 90968.04
# [8,] 6 0.68919847 104.02709 81707.46
# [9,] 2 2.09049665 101.54893 106670.09
# [10,] 8 0.46709800 93.99757 24731.10
# [11,] 3 0.74135137 101.59734 357145.81
# [12,] 3 0.74135137 101.59734 357145.81
# [13,] 6 0.94498296 101.01209 54966.14
# [14,] 2 0.20971876 98.77933 128642.44