【发布时间】:2020-09-14 07:07:56
【问题描述】:
我正在尝试获取两个向量的唯一元素的向量,该向量尊重两个原始向量的顺序。
向量都是从一个较长的“隐藏”向量中采样的,该向量仅包含唯一条目(即不允许重复),这确保 v1 和 v2 具有兼容的顺序(即 v1
顺序是任意的,所以我不能使用任何简单的 order() 或 sort()。 下面是一个例子:
v1 <- c("Z", "A", "F", "D")
v2 <- c("A", "T", "F", "Q", "D")
想要的结果:
c("Z", "A", "T", "F", "Q", "D") or
进一步说明:v1建立关系 “Z”
我知道这种情况是完全确定的(这两个向量确实完全定义了所有元素的顺序),但是在某些情况下这还不够。在这种情况下,任何尊重两组排序的排列都是一个令人满意的解决方案。
任何提示将不胜感激。
【问题讨论】:
-
我相信不是。每个向量定义一个顺序并且两者都是兼容的。在
v2中有一个Q < D,所以在最后一个向量中应该有Q < D。 -
@iago。谢谢,确实是这样。应保持所有向量中的相对顺序。
-
抱歉,问题没有明确说明。例如,为什么在您想要的解决方案中将“Q”放在“D”之前? v2 优先于 v1 吗?举个简单的例子,如果你有 v1
-
@AdrianTompkins 正如我上面所说的,任何向量都没有优先级。该问题要求保持 both 原始向量的顺序,因此您的
v1和v2不是可能的原始向量,因为它们的顺序不兼容。 -
所以事实上,问题本质上是 v1 和 v2 是来自第三个“隐藏”较长向量的子样本,该向量仅包含唯一条目。这将确保两个向量具有兼容的顺序并且不允许重复。 :-)
标签: r