我有这个数据框
| 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
包来执行此操作,如果可以避免循环。