我试图每 10 分钟计算一列的几何平均值。
我的样本数据是..
TimeDate diam ratio
2016-05-11 8:25 134.491 1.83074
2016-05-11 8:25 117.777 1.34712
2016-05-11 8:25 104.27 0.927635
2016-05-11 8:25 204.085 1.43079
2016-05-11 8:25 96.8011 0.991716
2016-05-11 8:25 119.152 1.09884
2016-05-11 8:25 113.871 0.932493
2016-05-11 8:26 150.468 0.710525
2016-05-11 8:26 116.576 1.11207
2016-05-11 8:26 192.257 1.61558
2016-05-11 8:26 128.071 0.756608
2016-05-11 8:26 177.667 0.73309
2016-05-11 8:27 97.7377 0.862858
2016-05-11 8:27 98.3195 1.00681
2016-05-11 8:27 91.3603 0.95051
2016-05-11 8:27 152.95 0.842145
2016-05-11 8:27 133.125 1.28365
2016-05-11 8:27 95.2516 0.573588
我已经尝试使用 dplyr 函数,但下面的代码不会每 10 分钟产生一次值,而是产生一个几何平均值和一个几何 sd 值。
mydata$TimeDate <- as.POSIXct(strptime(mydata$TimeDate, format = "%Y-%m-%d %H:%M","GMT"))
mydata %>%
group_by(by10 = cut(TimeDate, breaks="10 min")) %>%
summarize(Geo.Mean=exp(mean(log(diam))),
Geo.SD=exp(sd(log(diam))))
数据格式本身是可以的,因为下面的聚合函数很好,尽管它不会创建几何平均值。
aggregate(mydata["diam"],
list(TimeDate=cut(mydata$TimeDate, "10 mins")),
median, na.rm=T)