r - R中的凸联合操作
问题描述
我有 3 个向量
a = c(3,7)
b = c(4,6)
c = c(2,6)
我想把这三套结合起来。我可以使用该union()
函数,但“凸”联合要求向量c
从联合中删除,因为它由 a 支配,这对于两个元素来说更高。
有什么简单的方法吗?
解决方案
如果每一行m
是一对,则which.nondominated(-t(m))
给出不被其他行支配的行的行号。代码是用 C 编写的,所以应该很快。
library(ecr)
m <- rbind(a, b, c) # input data
ix <- which.nondominated(-t(m)) # 1, 2
mm <- m[ix, ]
mm
## [,1] [,2]
## a 3 7
## b 4 6
此示例中没有重复项,但如果可能存在并且您还想删除它们,则:
unique(mm)
或者
mm[!duplicated(mm), ]
推荐阅读
- c# - 删除外括号并用数字命名对象?
- python - odeint:无法根据规则“安全”将数组数据从 dtype('complex128') 转换为 dtype('float64')
- python - 如何从不同的列在熊猫中创建一个列,匹配一个列表
- javascript - 有没有办法可以在 JavaScript 中使用带有 if () 语句的 .includes() 函数?
- python - 我在从 python 项目中的子文件夹导入时遇到问题
- sql - SQL SERVER - 根据列 ID 从表中获取记录
- tensorflow - softmax_cross_entropy_with_logits_v2 给出不可训练的输出
- android - 设置了“不保留活动”,未调用 onSaveInstanceState
- android - 如何更改卡片视图中信息的数字格式?
- wordpress - 我可以在一个域上安装两次 wordpress