使用具有复杂FUN参数的聚合

时间:2015-05-16 01:46:16

标签: r aggregate geometry

我有兴趣计算小时平均值。在过去,我成功地使用了聚合函数,如下所示:

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()函数的最佳方法是什么?

1 个答案:

答案 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))) )