私はこのデータフレームを持っています
| A | B | C | Output |
|---------|---------|---------|--------|
| NoFault | NoFault | NoFault | 8 |
| Fault | NoFault | NoFault | 2 |
| NoFault | Fault | NoFault | 0 |
| Fault | Fault | NoFault | 2 |
| NoFault | NoFault | Fault | 2 |
| Fault | NoFault | Fault | 0 |
| NoFault | Fault | Fault | 2 |
| Fault | Fault | Fault | 4 |
次のコードを使用してこれを生成しました。
A <- c(1,0,1,0,1,0,1,0)
B <- c(1,1,0,0,1,1,0,0)
C <- c(1,1,1,1,0,0,0,0)
Output <- c(8,2,0,2,2,0,2,4)
data <- data.frame(cbind(A,B,C,Output))
列 C の出力のパーセンテージを計算する操作を実行したいのですが、結果は次のようになります。
| A | B | C | Output |
|---------|---------|---------|--------|
| NoFault | NoFault | NoFault |8/(8+2) |
| Fault | NoFault | NoFault |2/(2+0) |
| NoFault | Fault | NoFault |0/(0+2) |
| Fault | Fault | NoFault |2/(2+4) |
| NoFault | NoFault | Fault |2/(2+8) |
| Fault | NoFault | Fault |0/(0+2) |
| NoFault | Fault | Fault |2/(2+0) |
| Fault | Fault | Fault |4/(4+2) |
したがって、ここで何が起こっているかというと、列 A、B のシーケンスが繰り返されるたびに、それらの行を取得し、その出力をパーセンテージで作成しています。
例えばA = NoFault
, B=NoFault
, C の出力を分数に変換Fault
&ループが避けられるならNoFault
ベクトル演算やパッケージで行いたい。plyr