根据这个问题:How can I calculate average hour of an event?如果我们想计算平均圆形均值和中位数,如何计算每个时间点与均值之间的差异?从平均值中减去每个数据点是否足够?下面的代码不起作用。我们的目标是沿着以下路线实现一些东西-如果有两个数据点22和1,圆形平均值是23,那么第一个点是早一个小时,第二个是两个小时,所以-1和+2。但我不知道这是否是计算时差的最佳方法,考虑到时钟时间的循环特性。
library(circular)
hours <- c(1, 20.10, 21, 22, 23 , 0, 1, 2.5)
hours.circ <- circular(hours, template = "clock24", units = "hours")
mean.circ <- mean(hours.circ)
as.numeric(mean.circ) %% 24
## [1] 0
median.circ <- median(hours.circ)
as.numeric(median.circ) %% 24
## [1] 0
plot(hours.circ)
points(mean.circ, col = "red", cex = 3)
points(median.circ, col = "blue", cex = 2)
for (i in hours.circ){
x = as.numeric(hours.circ - mean.circ)%% 24
print(x)
}
1条答案
按热度按时间xqnpmsa81#
要实现你想做的事情,你可以使用tidyverse的reframe功能。