我有兴趣计算小时平均值。在过去,我成功地使用了聚合函数,如下所示:
Time<-c("1:00","1:20","1:40","2:00","2:20","2:40","3:00","3:20","3:40","4:00","4:20","4:40")
Hour<-c(1,1,1,2,2,2,3,3,3,4,4,4)
Bearing<-c(10,20,30,350,3,20,170,195,200,300,20,50)
DF<-data.frame(Time,Hour,Bearing)
ByHR<-aggregate(.~Hour,data=DF,mean)
通过这种方式,我得到了我的轴承数据的每小时平均值。但是现在我想使用circ.mean()函数来计算循环数据的方法。
library(CircStats)
deg(circ.mean(rad(DF$Bearing)))
我不能在上面的聚合代码中插入上面的函数,因为我收到错误。那么有没有办法使用更复杂的FUN参数与聚合?如果没有,在上述数据中按小时应用circ.mean()函数的最佳方法是什么?
答案 0 :(得分:1)
您是否尝试将自己的函数编写为复杂函数的包装器?
my_fun <- function(x) deg(circ.mean(rad(x)))
aggregate(.~Hour, data=DF, my_fun)
还有匿名功能方法:
aggregate(.~Hour, data=DF, function(x) deg(circ.mean(rad(x))) )