R -将循环类的对象转换回数字



我正在使用R中的包循环来拟合一组数据的von Mises分布:

Mises <- mle.vonmises(x = angle, mu = NULL, kappa = NULL, bias = FALSE, control.circular = list()) 

结果来自类循环。有没有一种方法可以同时提取mu和kappa,使它们成为数字?我需要这样做很多次(我猜使用group_by()),所以手动写下mu和kappa的显示值不是一个选项。

谢谢你的帮助!

mle.vonmises的输出是一个list

> str(Mises)
List of 8
$ call     : language mle.vonmises(x = x)
$ mu       : 'circular' num -0.0264  # it is a numeric value
..- attr(*, "circularp")=List of 6
.. ..$ type    : chr "angles"
.. ..$ units   : chr "radians"
.. ..$ template: chr "none"
.. ..$ modulo  : chr "asis"
.. ..$ zero    : num 0
.. ..$ rotation: chr "counter"
$ kappa    : num 5.21
$ se.mu    : num 0.0654
$ se.kappa : num 0.973
$ est.mu   : num 1
$ est.kappa: num 1
$ bias     : logi FALSE
- attr(*, "class")= chr "mle.vonmises"

可以用标准提取器提取list元素。$[[。关于转换为numeric,mu已经是numeric类。

> class(Mises$mu)
[1] "circular" "numeric" 

它还包括一些attr属性,以及在numeric之上构建的额外类circular,可以通过使用as.numericas.vector包装或将属性设置为NULL来删除

as.numeric(Mises$mu)
#[1] -0.02639894
Mises$kappa
[1] 5.214254

数据
library(circular)
x <- rvonmises(n=50, mu=circular(0), kappa=5)
Mises <- mle.vonmises(x)

最新更新