【发布时间】:2021-02-21 21:03:53
【问题描述】:
我有一个类似的数据框:
Time <- seq.POSIXt(as.POSIXct("2017-11-14 00:01:00 CET"), as.POSIXct("2017-11-14 00:15:00 CET"), units = "minute", by=60)
A <- c(2,3,5,2,5,8,17,3,5,8,17,3,5,1,5)
B <- c(1,1,2,1,2,1,2,2,2,4,6,7,8,8,9)
DF <- data.frame(Time=Time, A=A, B=B)
我想要一个“newDF”,我将数据聚合 5 分钟,但是,对于每一列,聚合前的最大值/最小值除外。
使用 dplyr 我得到了这样的结果:
DF$TimeStamp_round<-floor_date(DF$Time,unit="5 minutes")
DF<-DF %>%
group_by(TimeStamp_round) %>%
mutate(TimeStamp_count = cur_group_id())
newDF<-DF %>%
group_by(TimeStamp_count) %>%
summarise(across(where(is.numeric), mean))
但我仍然无法在 newDF 中的 summarise() 函数之前排除最大/最小值
注意:我不想为每一列手动执行此操作,因为在真正的 DF 中,列是 350
【问题讨论】:
-
如果只有一个值,你想怎么得到输出