我有一个关于不同条件下的列求和的问题,我真的很想得到一些帮助。
考虑这个数据表:
我想在这里计算一只动物在围场上停留的最长时间和平均时间。这个简单的例子有两个,但实际上有数百个!查看时间列,狗在第二行和第三行之间最多停留20分钟。所以最多20分钟,平均15分钟(一个周期为20分钟,一个周期为10分钟)。或者,猫最多停留10分钟,平均10分钟(它在围场上每次停留10分钟,共三次)。
所以我的输出看起来像这样:
任何帮助都将不胜感激!!
使用diff
、group_by
和总结
:
df %>%
mutate(time_diff = c(diff(Time), NA)) %>%
group_by(`animal on`) %>%
summarise(
`Max time` = max(time_diff, na.rm = TRUE),
`Average Time` = mean(time_diff, na.rm = TRUE)
)
# A tibble: 2 × 3
`animal on` `Max time` `Average Time`
<chr> <dbl> <dbl>
1 cat 10 10
2 dog 20 15