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

R语言使用sn库psn函数在mutate中多参数调用报参数缺失错如何解决

问题原因

  • purrr::map仅支持单参数迭代,你传入list(par, value=finfl_new2)时,函数会把列表的两个元素作为两次独立调用的入参:第一次仅传入par列,没有传入value参数,直接触发参数缺失报错。
  • 你的需求是每行同时取当前行的par和finfl_new2两个参数传入myp函数,属于双参数并行迭代场景,需要改用purrr::map2实现。

修正后代码

# 原自定义函数无需修改
myp <- function(par,value){
  par0 <- unlist(par)
  data.frame(x=value,prob=sn::psn(x=value,
                       xi=par0[1],
                       omega=par0[2], 
                       alpha=par0[3],
                       nu=par0[4]))
}

# 替换map为map2,按行传入两个参数
df1_bfgs <- filter(df1, par!="error") %>% 
  mutate(prob = map2(.x = par, .y = finfl_new2, .f = myp))

# 可选操作:如果要把prob列的嵌套数据框展开为普通列,可加unnest
# df1_bfgs <- df1_bfgs %>% unnest(prob)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:24:01