私がやっていることはかなりシンプルです。しかし、私はRには新しく、ループや関数について多くのことを学んでいないし、結果を得る最も効率的な方法は何か分からない。基本的には、自分の条件を満たす行の数を数え、除算を行いたいと思います。ここでは一例です:分子のための条件に基づいた計算を繰り返す
df1 <- data.frame(
Main = c(0.0089, -0.050667, -0.030379, 0.066484, 0.006439, -0.026076),
B = c(NA, 0.0345, -0.0683, -0.052774, 0.014661, -0.040537),
C = c(0.0181, 0, -0.056197, 0.040794, 0.03516, -0.022662),
D = c(-0.0127, -0.025995, -0.04293, 0.057816, 0.033458, -0.058382)
)
df1
# Main B C D
# 1 0.008900 NA 0.018100 -0.012700
# 2 -0.050667 0.034500 0.000000 -0.025995
# 3 -0.030379 -0.068300 -0.056197 -0.042930
# 4 0.066484 -0.052774 0.040794 0.057816
# 5 0.006439 0.014661 0.035160 0.033458
# 6 -0.026076 -0.040537 -0.022662 -0.058382
私の基準はMain
が>0
とき>0
あるB/C/D
の数を数えることです。分母の場合、Main
が!= 0
の場合、B/C/D
の数を!= 0
と数えます。 length(which(df1$Main >0 & df1$B>0))/length(which(df1$Main !=0 & df1$B !=0))
を使用して、各列の比率を個別に取得できます。しかし、私のデータセットは、より多くの列を持っている、と私の結果は以下のようになりますように、すべてを一度にそれらの比を取得する方法があれば、私は疑問に思って:
# B C D
# 1 0.2 0.6 0.3