r - 如何通过排除 r 中第 1 组中的前 300 个测量值来计算平均值
问题描述
我有许多 1 秒的发射测量值,并按事件编号对它们进行了分组。但是,我想从第 1 组中删除前 300 次测量,并计算从 301 到该组中最后一次测量的组平均值。对于剩余的组,我将只使用所有测量值计算组平均值,无需取出前 300 秒。
我知道在不排除第 1 组中的前 300 个测量值的情况下计算组平均值的代码,例如:
StartsSummary <- ddply(emission, "Group", summarize, CO2_avg = mean(CO2_DC))
emission <- data.frame(Group= c(rep(1, 400), rep(2, 305),rep(3, 200)), CO2_DC = c(rep(0.5, 350), rep(1, 400), rep(1.5, 155))
我希望结果如下:
Group CO2_avg
1 0.75 (excluding first 300 measurements in group 1)
2 1 (include all measurements in group 2)
3 1.3875 (include all measurements in group 3)
解决方案
根据实际问题的大小,最简单的方法是分两个阶段进行计算
library(tidyverse)
# Mean of groups 2 and 3 using all data
emission %>%
filter(Group != 1) %>% # exclude group 1
group_by(Group) %>%
summarise(mean(CO2_DC))
# Mean of group 1 exclusing the first 300 rows
emission %>%
filter(Group == 1) %>%
slice(301:n()) %>%
summarise(mean(CO2_DC))
推荐阅读
- javascript - React 检测到 Navigation 调用的 Hooks 的顺序发生了变化
- java - 用于包装多行函数参数的 Intellij 代码样式设置
- swiftui - SwiftUI 容器视图 - 如何为属性提供默认值?
- java - Spring Boot 通过异常或 AOP 在即将到来的响应中添加标头
- ios - Ionic 5 Http 失败响应(未知 URL):0 离子电容器中的未知错误。在模拟器上调用 API 时
- java - 无法在 Maven 中添加和使用外部 jar
- javascript - 如何获取默认选中的无线电输入的值?
- react-native - TypeError: undefined is not an object (evalating 'subscription[nativeEmitterSubscriptionKey]') 当使用动画微调器时
- nuxt.js - nuxtserverinit 和用户登录
- javascript - 在 Apps 脚本中将日期推送到数组时出错