aおよびbはリストです。リスト内の特定の行を抽出する
a<-list(matrix(1:36,9),matrix(7:38,8))
b<-list(matrix(c(1,1,1,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0),9),matrix(c(1,0,0,1,0,0,0,1),8))
aとbのオブジェクトの行番号は同じです。私は、行の抽出行がbの値1と等しい場所にしたい。
私は、次のコードを使用し
Map(function(a,b) sapply(1:ncol(b), function(x) {a[which(b[,x]==1),]}), a,b)
をしかし、第二の目的の結果は、マトリクス状に表示されていない:
[[1]]
[[1]][[1]]
[,1] [,2] [,3] [,4]
[1,] 1 10 19 28
[2,] 2 11 20 29
[3,] 3 12 21 30
[4,] 4 13 22 31
[5,] 7 16 25 34
[6,] 9 18 27 36
[[1]][[2]]
[,1] [,2] [,3] [,4]
[1,] 1 10 19 28
[2,] 5 14 23 32
[3,] 6 15 24 33
[4,] 7 16 25 34
[[2]]
[,1]
[1,] 7
[2,] 10
[3,] 14
[4,] 15
[5,] 18
[6,] 22
[7,] 23
[8,] 26
[9,] 30
[10,] 31
[11,] 34
[12,] 38
あなたはあなたに感謝し、それに私を助けることができます!
、最初の要素が持つ' matrix'です2列。だから、そのために1つの値を持つ条件は – akrun
@akrunだから、最初の要素の各列に従って2つの行列を出力する必要があります – lightsnail