You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中如何将circular类对象转为numeric并提取von Mises分布的mu、kappa值

单组数据参数提取

mle.vonmises()返回的结果为列表结构,其中存储的mu、kappa默认是circular类,直接用as.numeric()包裹即可转换为数值型:

# 提取单组拟合结果的参数
mu_numeric <- as.numeric(Mises$mu)
kappa_numeric <- as.numeric(Mises$kappa)

配合group_by()批量处理方案

如果需要对分组数据批量拟合分布并提取参数,可结合嵌套表和purrr的映射函数实现,完整示例如下:

# 加载所需包
library(circular)
library(dplyr)
library(tidyr)
library(purrr)

# 示例数据结构:包含分组列group、角度数据列angle
demo_df <- data.frame(
  group = rep(c("组1", "组2", "组3"), each = 80),
  angle = c(
    rvonmises(80, mu = circular(pi/4), kappa = 3),
    rvonmises(80, mu = circular(pi), kappa = 6),
    rvonmises(80, mu = circular(3*pi/2), kappa = 1.5)
  )
)

# 分组拟合+批量提取参数
param_result <- demo_df %>%
  group_by(group) %>%
  nest() %>%
  mutate(
    # 对每个分组单独拟合von Mises分布
    fit_res = map(data, ~mle.vonmises(x = .x$angle, bias = FALSE, control.circular = list())),
    # 提取mu并转换为数值
    mu = map_dbl(fit_res, ~as.numeric(.x$mu)),
    # 提取kappa并转换为数值
    kappa = map_dbl(fit_res, ~as.numeric(.x$kappa))
  ) %>%
  select(group, mu, kappa)

运行后得到的param_result就是每个分组对应参数的数值型结果,可直接用于后续计算。

内容的提问来源于stack exchange,提问作者Jerome

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:24:05