条件替换具有特定行的总和的数据帧的特定行的列的值

时间:2015-08-04 15:33:19

标签: r sum aggregate

对于我的数据框,我一直在为R中的聚合/求和而苦苦挣扎。我的数据如下:

    hour    Case   Time
       7       2    35
       8       8    125
       9       10   145
       10      15   18
       11      17   167
       12      20   220
       13      25   135
       14      14   167
       15      18   134
       16      16   100
       17      7    55
       18      6    178
       19      5    245
       20      1    133
       21      1    12
       22      0    54
       23      2    180
       24      1    55

我只想将“小时”== 8的行的“大小写”和“时间”值替换为“小时”< = 8或“小时”的行的“大小写”和“时间”值的总和> 18.我在R中尝试了条件聚合(),带有(),colsums()函数,但没有一个工作。我想知道是否有人可以给我一个提示。

由于

1 个答案:

答案 0 :(得分:3)

您可以在按条件分配原始数据集时尝试条件colSums

df[df$hour == 8, c("Case", "Time")] <- colSums(df[df$hour <= 8 | df$hour > 18, c("Case", "Time")])