如何获取特定行数

How to get the number of specific rows

我有两个矩阵:

A <- structure(c(0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 
0, 0, 1), .Dim = c(10L, 2L), .Dimnames = list(NULL, c("a", "b"
)))
B <- structure(c(1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 
0, 0, 0), .Dim = c(10L, 2L), .Dimnames = list(NULL, c("c", "d"
)))

我资助 A 中包含第一个“1”的行数:

a_1 <- t(as.matrix(max.col(t(A) == 1, "first")))

它 return “4 , 3”。 现在我需要知道 B 中包含第一个“1”的行数,在我从 A 输出的行之后(分别为“4”和“2”)。我期望的结果是 B 的第一列为“5”,第二列为“NA”(或类似的东西)。 我能怎么做?感谢您的帮助!

也许这有帮助

apply((row(B) >c(a_1)[col(B)]) * B, 2, \(x) which(x==1)[1])
 c  d 
 5 NA 

这里有一个方法:

sapply(seq_along(a_1), \(i) {
  k =which(B[,i]==1);k[which(k>a_1[i])][1]
})

输出:

[1] 5 NA