我有这样的数据:
这是一个不平凡的问题,因为你实际上是试图计算一个圆形域上的平均值,而不是一个区间。有一整个方向统计学领域致力于解决这类问题。
为了能够计算平均值,你需要为你的角度选择一个范围,比如[0°,360°]。如果你的数据由30°和330°组成,你取这些数字的平均值,得到(30°+330°)/2 = 180°,但直觉上这两个的平均值应该是0°。你可以通过仔细选择你的范围来解决这个问题。假设取角度在[-180°,180°]范围内,那么我们的两个数据点变成30°和-30°,给出一个合理的平均值0°。
最简单的事情可能是计算数据的模式。哪个方向发生得最多?这并不取决于你取的范围。事实上,你根本不需要计算角度。只要找到哪个字符串"NNE", "SW"等出现最多。
如果你想要一些更复杂的东西,那么首先选择模式,给你一个开始的方向。比如"ssw";= 210°是最常见的。然后选择你的范围是180°的两侧[30°,390°]。取这个范围内的所有角度,计算平均值。这仍然留下了一个问题,即您如何处理完全相反方向的测量。我们把NNE分类为30°还是390°?最简单的方法就是拒绝这个值。
一个完全不同的方法是如果你也有风速数据。所以你的数据是SSW,每小时3英里。这变得更容易了。只需将每个读数映射到平面上的一个点x = 3cos(210°),y = 3sin(210°),然后取这些点的平均值。结果将是平面上的另一个点,您可以将其转换回速度和速度。
关于这个话题之前的一个问题:如何计算一组循环数据的平均值?