R-使用带变量的if语句进行条件计数

时间:2019-07-08 18:01:10

标签: r count aggregate

我想用现有的信息创建一个新的数据框,处理该数据以进行计数并简化/汇总。我知道我想在逻辑上做些什么,但无法弄清楚如何将其放入代码中。

这是我最初的df:

time end stage
0   1   A4
0   1   A4
0   2   A1
0   2   A3
0   3   A3
0   4   B3
0   5   B3
0   7   B1
0   11  B1
0   12  B2
0   29  B2
1   9   A5
1   13  A5
2   6   A2
2   14  A5
3   15  A5
4   21  B1
5   22  B1
6   8   A3

第一列是开始时间,第二列是结束时间,第三列是阶段标签-我要计数。我想要这样的结果,显示每个时间点每个阶段标签的数量:

time A1 A2  A3  A4  A5  B1  B2  B3
0   1   0   2   2   0   2   2   2
1   1   0   2   0   2   2   2   2
2   1   1   0   3   2   2   2   0
3   1   0   0   4   2   2   2   0
4   1   0   0   4   3   2   1   0
5   1   0   0   4   4   2   0   0
6   1   0   4   4   2   0   0   0

但是,由于每个时间段的持续时间各不相同,并且每个开始时间都有多个条目,因此我想每次创建一个新的df,并且每行仅包含一行,并在其他列中填充“如果开始时间小于等于x且结束时间大于x则计算每个标签的数量。”时间的特定值根据所分析的不同数据而变化,因此需要将其通用化以允许特定的x值发生变化(并相应地自动创建新的df)。

谢谢!

编辑:虽然这类似于将df从长格式转换为宽格式,但是时间和持续时间增加了这些答案中的方法无法解决的复杂程度。

0 个答案:

没有答案