将 R 中的参数传递给多个实数变量的函数

2023-11-29

我是 R 的新手,需要解决多目标优化问题 (MOOP)。我已经导入了 mco 包,定义了我的函数并检查了 nsga2 函数。问题是,当前者与数字变量匹配时,我还没有找到绑定函数定义中的参数(形式参数)和调用中的参数(实际参数)的正确方法。

我有以下代码:

funct_set <- function (x1,x2,x3) {
  f <- numeric(2)
  f[1] <- min(-5*x1 - 2*x2 - 8*x3)
  f[2] <- min(1000*x1 + 8000*x2 + 12000*x3)
  return (f);
}

restrictions <- function (x1,x2,x3) {
  restrictions <- numeric(3)
  restrictions[1] <- (x1 + x2 + x3 <= 30)
  restrictions[2] <- (x1 + x2 + x3 > 0)
  restrictions[3] <- (2*x1 + 3*x2 + 1.5*x3 <= 45)
  return (restrictions);
}

optimization <- nsga2(funct_set('x1', 'x2', 'x3'),
                      constraints = restrictions('x1', 'x2', 'x3'),
                      2, 2,
                      NULL,
                      generations=150,
                      popsize=100,
                      cprob=0.7,
                      cdist=20,
                      mprob=0.2,
                      mdist=20,
                      lower.bounds=rep(-5, 2),
                      upper.bounds=rep(10, 2)
                      );

然而,这导致 R 认为 'x1'、'x2' 和 'x3' 不是数字:Error in x1 + x2 : non-numeric argument to binary operator

传递这些参数的正确方法是什么?


您的代码有几个问题:

  • 要最小化的函数和约束函数必须以向量作为参数,并且您只需将它们的名称传递给nsga2

  • 你必须设置idim3、参数个数

  • lower.bounds and upper.bounds必须有长度idim

  • 你必须设置cdim3、约束数量

  • 我不知道你为什么设置一个NULL争论

下面是更正后的代码,它可以工作。

library(mco)

funct_set <- function (x) {
  x1 <- x[1]; x2 <- x[2]; x3 <- x[3]
  f <- numeric(2)
  f[1] <- min(-5*x1 - 2*x2 - 8*x3)
  f[2] <- min(1000*x1 + 8000*x2 + 12000*x3)
  return (f);
}

restrictions <- function (x) {
  x1 <- x[1]; x2 <- x[2]; x3 <- x[3]
  restrictions <- logical(3)
  restrictions[1] <- (x1 + x2 + x3 <= 30)
  restrictions[2] <- (x1 + x2 + x3 > 0)
  restrictions[3] <- (2*x1 + 3*x2 + 1.5*x3 <= 45)
  return (restrictions);
}

optimization <- nsga2(funct_set, idim = 3, odim = 2,
                      constraints = restrictions, cdim = 3,
                      generations=150,
                      popsize=100,
                      cprob=0.7,
                      cdist=20,
                      mprob=0.2,
                      mdist=20,
                      lower.bounds=rep(-5, 3),
                      upper.bounds=rep(10, 3)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 R 中的参数传递给多个实数变量的函数 的相关文章

  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 time milk Animal ID 30 25 6 1 31 27 2 1 32 24 4 1 33 17 4 1 34 33 6 1 35 25 4 1 33 29 4 2 34 25 4 2 35 24
  • 使用 purrr 迭代替换数据帧列中的字符串

    我想用purrr使用以下命令在数据框列上迭代运行多个字符串替换gsub 功能 这是示例数据框 df lt data frame Year 2019 Text c rep a aa 5 rep a bb 3 rep a cc 2 gt df
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • r 中训练和测试数据的最小最大缩放/归一化

    我正在创建一个函数 它将训练集和测试集作为其参数 最小 最大缩放 标准化并返回训练集并使用这些same最小值和最小 最大范围的值 标准化并返回测试集 到目前为止 这是我想出的功能 min max scaling lt function tr
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 计算 R 中各列的唯一值

    我正在尝试创建一个新变量 其中包含来自两个不同列的字符串值的唯一计数 所以我有这样的东西 例如 A tibble 4 x 2 names partners
  • 如何在 R 中匹配多个 ggplot2 图中的调色板?

    自从被问到这个问题以来已经有一段时间了 但我知道一个事实 我很快就会提取新数据 我想弄清楚如何用这种技术来绘制它 看起来评论和答案中的人知道如何做到这一点 但我无法完全弄清楚所给我的内容 还有人想尝试一下吗 我正在尝试使用具有多个级别的因子
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • 如何从 R 中的 txt 文件读取矩阵?

    我有一个带有矩阵的txt文件 Matrix txt 重要 数字之间没有空格 0100 1001 1100 我想在 R 中将其作为矩阵读取 我该怎么做 我尝试使用 as matrix read table Matrix txt sep 但失败
  • 纵向比较 R 中的值...并进行扭转

    我有许多人在多达四个时间段进行的测试结果 这是一个示例 dat lt structure list Participant ID c A A A A B B B B C C C C phase structure c 1L 2L 3L 4L
  • 投资决策:R中的NPV、IRR、PB计算

    我正在尝试计算不同数量项目的净现值 NPV 内部收益率 IRR 和投资回收期 PB 时间 以评估哪个投资项目提供最佳回报 到目前为止 我可以为每个项目单独计算几行代码 但我想做的是 编写一个函数 它接受一个包含许多不同项目及其现金流的矩阵
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 实三次多项式的最快数值解?

    R 问题 寻找最快的方法来数值求解一堆已知具有实系数和三个实根的任意三次方程 据报道 R 中的 polyroot 函数对复杂多项式使用 Jenkins Traub 算法 419 但对于实多项式 作者参考了他们早期的工作 对于实三次或更一般的

随机推荐

  • CLR 存储过程中的多线程代码?

    多线程 CLR 存储过程可能吗 我有一项数据密集型任务 具有很大的并行化潜力 CLR 存储过程非常适合消除将数据移出进程的开销 但我担心我必须放弃并行计算 我有什么选择 注意 我们使用的是 SQL Server 2005 计划在 4 个月内
  • 如何将 UIView、UIImageView 或 CALayer 动画旋转 360°?

    你如何旋转UIView UIImageView or CALayer不使用 OpenGL ES 进行 360 度动画 import
  • ASP.NET 和 STA COM 对象

    想要在这里解决争论 我读过的关于使用 VB 中从 ASP NET 页面创建的 COM 对象的所有内容都围绕着 警告 请确保安装了 ASPCOMPAT 否则它将无法工作 然而 我已经设置好了 你猜怎么着 没问题 现在 我读到了这个 http
  • PHP 和 XML。使用 PHP 循环 XML 文件

    我现在正陷入 foreach 炼狱中 试图想出一种用 PHP 遵循 XML 文件内容 遍历这个 XML 文件 下面的实际 XML 文本 的方法 我想做的是 获取所有文件夹元素名称 如果文件夹元素的子文件夹属性为 yes 则向下移动一级并获取
  • 在 Google Compute Engine 上从没有公共 IP 的计算机路由到互联网

    在 Google Compute Engine 上 我们有没有公共 IP 的机器 因为配额限制了可以拥有公共 IP 地址的机器数量 我们需要这些非公共 IP 机器来访问 Google 存储桶中的数据 这似乎意味着我们必须路由到互联网 但我们
  • 使用 ImageMagick 对图像进行平等测试

    ImageMagick 库中有相等谓词函数吗 我想比较两个图像并找出它们是否完全相同 像素的所有颜色都相同 或有任何差异 我查了一下 好像没有这个功能 我应该自己使用像素迭代器编写函数吗 ImageMagick 提供compare功能来正确
  • 如何在不同的目录中启动 npm?

    我通常cd进入app目录然后运行npm start 我的感觉应该是有什么办法可以跑npm start带有路径参数 但是 npm 启动文档不包含这样的功能 我尝试自己却发现npm start myapp不起作用 有没有办法做到这一点 这一行应
  • 如何在 Angular 8 中将下拉列表(带选项)从 JSON 导出到 Excel?

    我正在尝试将 JSON 数据导出到具有下拉列表的 Excel 如果我们将数组作为单元格值传递 是否可以在 Excel 中创建下拉菜单 带选项 我正在尝试使用内置库 XLSX 来实现此目的 但如果我在单元格值中传递数组 则无法查看数据 更新
  • 如何知道一个StorageFolder-obj属于SD还是Phone?

    有没有办法知道 StorageFolder obj 属于 SD 或 WP8 1 上的手机 感谢您 例如 您可以通过检查Path of StorageFolder or StorageFIle string folderPath yourSt
  • 如何在jsPDF生成的PDF中添加水印?

    我正在从canva 生成PDF 并使用jsPDF 生成它 https github com MrRio jsPDF 这是我正在使用的代码 我想将水印添加到页面中 有人能帮我吗 self downloadCanvasObjectAsPDF f
  • 导入错误:没有名为 requests 的模块

    我知道有很多关于此的帖子 并且我尝试使用提供的解决方案 但无济于事 我试过pip install requests and pip install requests upgrade pip install requests upgrade
  • 没有标签的“for”属性的自定义复选框(Bootstrap 4)

    有没有办法仍然保留 Bootstrap 4 自定义复选框样式不使用 the id关于输入和属性for标签上 当您删除它时 检查的样式不存在 Example div class custom control custom checkbox m
  • 使用 jQuery 以像素为单位的填充或边距值作为整数

    jQuery 具有 height 和 width 函数 它们以整数形式返回像素的高度或宽度 如何获取元素的填充或边距值以像素和整数为单位使用 jQuery 我的第一个想法是执行以下操作 var padding parseInt jQuery
  • 需要帮助将格式 20120130 的日期转换为日期数据类型 oracle sql

    您能帮我将日期从 20120101 格式转换为 Orcle Sql 中的 DATE 格式吗 我看了这个link但它没有提到日期格式是否是自定义的 编辑 是否可以将任何排除规则写入转换函数 像这样的 99999999 到 9999 12 31
  • Firefox 浏览器不会重新加载更新的 CSS/JS 文件

    我在 Firefox 浏览器中遇到问题 因为每次更新 CSS 或 JS 文件时 我都需要清除 Firefox 浏览器的缓存才能获取更新的文件 我使用 XSP2 服务器是因为我在 ubuntu 中使用 C 和 asp net 开发了我的 we
  • Java真的很慢吗?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 Java有在某种程度上因缓慢而闻名 Java真的很慢吗 如果是 为什么 瓶颈在 或曾经 在哪里 是因为 JVM 效率低下吗 垃圾收
  • array_unique() 是否通过引用修改其数组?

    我使用后array unique 在数组上 当我var dump 数组 它仍然具有相同的内容 但有重复 array 21 0 gt string 10 tricou CRS 1 gt string 10 tricou CRM 2 gt st
  • C 调用约定和传递参数

    在 Linux 或 OS X 中进行函数调用时 被调用者可以修改堆栈上参数的值吗 我的假设是 由于调用者是清理它们的人 因此它们在函数调用后应该包含相同的值 但是我发现带有 O2 的 GCC 正在修改在堆栈上传递给它的参数 我还查找了包括
  • 为什么 openCV 的 fastNlMeansDenoisingColored() 给出错误?

    我是菜鸟openCV概念 所以如果我的问题很愚蠢 请原谅我 实际上我正在尝试应用Photo fastNlMeansDenoisingColored 方法 但我不明白为什么它会给出这样的错误 Code Mat tmp new Mat bitm
  • 将 R 中的参数传递给多个实数变量的函数

    我是 R 的新手 需要解决多目标优化问题 MOOP 我已经导入了 mco 包 定义了我的函数并检查了 nsga2 函数 问题是 当前者与数字变量匹配时 我还没有找到绑定函数定义中的参数 形式参数 和调用中的参数 实际参数 的正确方法 我有以