j
は、行列で構成されたリストです。リスト内の条件付き比率を計算します。
j <- list(matrix(1:12,3),matrix(50:61,3))
> j
[[1]]
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
[[2]]
[,1] [,2] [,3] [,4]
[1,] 50 53 56 59
[2,] 51 54 57 60
[3,] 52 55 58 61
k
もマトリックスで構成されたリストです。
k <- list(matrix(c(T,T,T,T,T,T,F,T,F,F,F,F),3,byrow = T),
matrix(c(T,F,T,F,F,T,T,T,F,F,F,F),3,byrow = T))
> k
[[1]]
[,1] [,2] [,3] [,4]
[1,] TRUE TRUE TRUE TRUE
[2,] TRUE TRUE FALSE TRUE
[3,] FALSE FALSE FALSE FALSE
[[2]]
[,1] [,2] [,3] [,4]
[1,] TRUE FALSE TRUE FALSE
[2,] FALSE TRUE TRUE TRUE
[3,] FALSE FALSE FALSE FALSE
j
とk
同じ寸法を有しています。各行で、j
の値を合計で割って、TRUE
j
の合計で計算したいと考えています。
私は、例を用いてそれを説明してみましょう:j
の第一の目的で
最初の行は1 4 7 10
であり、すべての対応するj
sが全て真であるので、k
の対応する行は、TRUE TRUE TRUE TRUE
ので、の和"True" j
は1 + 4 + 7 + 10 = 22なので、j
の値を "True"の合計で割った値j
は、つまり0.04545455 0.18181818 0.31818182 0.45454545
です。
別の例:j
の最初のオブジェクトの2行目は2 5 8 11
あり、k
の対応する行はTRUE TRUE FALSE TRUE
ので、j
「真」の合計は18 = 2 + 5 + 11であるので、j
の値"True"の合計で割ったj
は2/18 5/18 8/18 11/18
、つまり0.1111111 0.2777778 0.4444444 0.6111111
です。
だから最終的に予想される結果は次のとおりです。
[[1]]
[,1] [,2] [,3] [,4]
[1,] 0.04545455 0.18181818 0.31818182 0.45454545
[2,] 0.1111111 0.2777778 0.4444444 0.6111111
[3,] Inf Inf Inf Inf
[[2]]
[,1] [,2] [,3] [,4]
[1,] 0.4716981 0.5000000 0.5283019 0.5566038
[2,] 0.2982456 0.3157895 0.3333333 0.3508772
[3,] Inf Inf Inf Inf
私はMap(function(a,b) a[b], j, k)
は、すべての真値を抽出できることを見つけるが、私は彼らが行で行sum
する方法がわからない、
'X *は本当に輝かしい道をy'is。 'rowSums'は素晴らしいです。どうもありがとうございます! – lightsnail