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

R语言如何实现返回节点向量对应乘积关于x的可调用函数

问题原因

你原有的代码会在调用prod_x时直接执行prod(x - nodes)计算结果,此时还没有传入参数x,自然会触发对象'x'未找到的报错。你需要的是让prod_x返回一个闭包函数,该函数接收x作为入参,同时捕获传入的nodes变量供后续计算使用。

基础实现(单值x)

prod_x <- function(nodes) {
  function(x) {
    prod(x - nodes)
  }
}

测试效果:

NODES <- 1:5
z <- prod_x(nodes = NODES)
z(0)
#> [1] -120

向量化实现(支持x为多值向量)

如果需要支持输入向量化的x,同时输出对应长度的计算结果,可以结合outer和apply实现,无需依赖额外包:

prod_x <- function(nodes) {
  function(x) {
    # 先构造x每个元素与nodes的差值矩阵,再按行求乘积
    apply(outer(x, nodes, FUN = `-`), MARGIN = 1, FUN = prod)
  }
}

向量化测试效果:

z <- prod_x(1:5)
z(c(0, 1, 6))
#> [1] -120    0  120

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:07