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

在R中按行传入向量形式的分布函数计算联合分布均值

问题详情

这是之前两个问题的后续:

  • 创建函数
  • 计算均值

我有var1、var2、var3三个变量,各自对应不同的分布函数:

var1_distr1 <- pdqr::as_d(function(x)dnorm(x, mean = 3, sd = 1))
var1_distr2 <- pdqr::as_d(function(x)dnorm(x, mean = 6, sd = 1))
var1_distr3 <- pdqr::as_d(function(x)dnorm(x, mean = 2, sd = 2))

var2_distr1 <- pdqr::as_d(function(x)dnorm(x, mean = 5, sd = 3))
var2_distr2 <- pdqr::as_d(function(x)dnorm(x, mean = 3, sd = 1))
var2_distr3 <- pdqr::as_d(function(x)dnorm(x, mean = 4, sd = 2))

var3_distr1 <- pdqr::as_d(function(x)dnorm(x, mean = 4, sd = 1))
var3_distr2 <- pdqr::as_d(function(x)dnorm(x, mean = 5, sd = 1))
var3_distr3 <- pdqr::as_d(function(x)dnorm(x, mean = 7, sd = 2))

为生成匹配多变量对应概率函数的比例分布函数,我编写了如下函数:

foo <- function(...){  
  # 设置x值
  x <- seq(1, 10, by = 1)
  # 生成y值
  y <- 1L
  for (fun in list(...)) y <- y * fun(x)
  # 创建新的PDF
  p <- data.frame(x,y)
  pdqr::new_d(p, type = "continuous")
}

单独调用该函数生成联合分布时运行正常,例如:var2_distr1__var3_distr3 <- foo(var2_distr1, var3_distr3)。

我通过if_else为每个变量的每行选择对应分布,结果存储在数据框df中:

df <- data.frame(var1 = c("var1_distr1", "var1_distr3", "var1_distr1", "var1_distr2", "var1_distr2", "var1_distr1", "var1_distr3"),
                 var2 = c("var2_distr2", "var2_distr1", "var2_distr2", "var2_distr1", "var2_distr3", "var2_distr3", "var2_distr1"),
                 var3 = c("var3_distr2", "var3_distr3", "var3_distr1", "var3_distr1", "var3_distr2", "var3_distr3", "var3_distr1"))

计算单个变量每行分布的均值时可正常运行:

df$var2_distr1_mean <- sapply(mget(df$var2_distr1), pdqr::summ_mean)
df$var3_distr3_mean <- sapply(mget(df$var3_distr3), pdqr::summ_mean)

但计算var1和var2对应的联合比例分布均值时出现错误:

> df$var1_2_mean <- mapply(pdqr::summ_mean, foo(df$var1, df$var2))
Error in fun(x) : could not find function "fun"

单独传入分布函数也报错:

> df$var1_2_mean <- mapply(summ_mean, foo(var1_distr1, var2_distr2))
Error in dots[[1L]][[1L]] : object of type 'closure' is not subsettable

按建议将所有PDF存入列表PDFS后,调用仍出现多种错误。我认为问题出在向量化处理上,请问使用invoke_map是否可行?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:06:32