我有兩個矩陣:
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")))
它回傳“4 , 3”。現在我需要知道 B 中包含第一個“1”的行數,在我作為 A 輸出的行之后(分別為“4”和“2”)。我期望的結果是 B 的第一列是“5”,第二個是“NA”(或類似的東西)。我能怎么做?謝謝幫助!
uj5u.com熱心網友回復:
這是一種方法:
sapply(seq_along(a_1), \(i) {
k =which(B[,i]==1);k[which(k>a_1[i])][1]
})
輸出:
[1] 5 NA
uj5u.com熱心網友回復:
也許這有幫助
apply((row(B) >c(a_1)[col(B)]) * B, 2, \(x) which(x==1)[1])
c d
5 NA
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/469426.html
上一篇:回圈遍歷多個串列
