我有一个看起来像这样的数据框(从真实数据中截断):
host month score se
1 V43 0 8.000000 0.4472136
2 V43 1 6.000000 0.0000000
3 V43 3 6.000000 0.0000000
4 V51 0 6.000000 0.0000000
5 V51 1 7.333333 0.4216370
6 V51 3 7.333333 0.2108185
7 V51 6 6.000000 0.0000000
我想从该主机每个月的分数中减去每个主机的第 0 个月分数。每个主机的第 0 个月分数需要单独应用,因此它看起来像这样:
host month score se
1 V43 0 0.000000 0.4472136
2 V43 1 -2.000000 0.0000000
3 V43 3 -2.000000 0.0000000
4 V51 0 0.000000 0.0000000
5 V51 1 1.333333 0.4216370
6 V51 3 1.333333 0.2108185
7 V51 6 0.000000 0.0000000
换句话说,我希望每个月都显示与起点的差异,而不是绝对值。
找到月份 0 行很容易,但我不知道如何将每一行与正确的主机匹配并进行减法。有没有办法在不使用for
循环的情况下做到这一点?