R:聚合数据帧,有条件地计算因子变量

时间:2016-10-16 21:55:34

标签: r aggregate

我是R新手,我似乎无法得到这个:我想通过计算特定值的出现来计算数据帧中的因子(在这种情况下,值为“是”)。还有很多N / A,如下:

电流:

Agg  Factor1  Factor2  Factor3
A1   Yes      Yes      Yes
A1   Yes      Yes      No
A1   Yes      N/A      No
A1   N/A      No       N/A
A2   Yes      Yes      No
A2   N/A      Yes      N/A
A2   No       N/A      N/A

期望的结果:

Agg F1 F2 F3
A1  3  2  1
A2  1  2  0

理想情况下,我想答案是基础R,因为我正在努力学习......当然,如果有一个更简单的解决方案使用包,我也会感兴趣。

数据

dd <- read.table(header = TRUE, na.strings = "N/A", text = 
"Agg  Factor1  Factor2  Factor3
A1   Yes      Yes      Yes
A1   Yes      Yes      No
A1   Yes      N/A      No
A1   N/A      No       N/A
A2   Yes      Yes      No
A2   No       Yes      N/A
A2   N/A      No       N/A")

1 个答案:

答案 0 :(得分:0)

根据因子对标签进行比较,因此无论因子列是因子还是字符串,这都会有效:

aggregate(dd[-1L]=='Yes',dd[1L],sum,na.rm=T);
##   Agg Factor1 Factor2 Factor3
## 1  A1       3       2       1
## 2  A2       1       2       0