我有一个由风向矢量组成的数据集,如下所示:
wdir <- c(296.9, 215.2, 204.8, 110.8, 287.6, 203.4, 253.1, 46.0, 298.8, 62.8, 183.4, 62.3,
44.3, 97.6, 78.6, 125.6, 116.9, 121.0, 111.2, 335.8, 287.4, 51.7, 232.6, 265.5,
269.7, 20.5, 17.0, 310.8)
标量值以度为单位。
如何计算平均风向?
最佳答案
这可以使用circular
包来完成。
要获取45
和315
的平均值,可以使用:
library(circular)
mean(circular(c(pi/4,7*pi/4)))
#Circular Data:
#Type = angles
#Units = radians
#Template = none
#Modulo = asis
#Zero = 0
#Rotation = counter
#[1] -1.570092e-16
之所以不完全是
0
,是因为R
中的floating point precision 。要获取
wdir
的平均值,您可以使用:mean(circular(wdir, units = "degrees"))
#Circular Data:
#Type = angles
#Units = degrees
#Template = none
#Modulo = asis
#Zero = 0
#Rotation = counter
#[1] 41.05411
另一个例子:
mean(circular(c(7*pi/2,pi/4, pi/2, 7*pi/2 )))
#Circular Data:
#Type = angles
#Units = radians
#Template = none
#Modulo = asis
#Zero = 0
#Rotation = counter
#[1] -0.3926991
关于r - 如何计算R中的风向平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34017216/