检查矩阵是否有行是另一行的排列并只保留其中一个
check whether matrix has row that is permutation of another and keep only one of it
我有以下问题:
我有一个包含唯一行的 k*2 矩阵(之前应用了 unique() 命令),所以重要的部分是它有两列。
现在我只想保留不是另一行排列的行,
但如果有排列,我确实想保留两者之一!
背景:这个矩阵的每个元素都与另一个数据向量的一列相关联,我想取许多 2 个这样的向量的差异,并投影到结果(差异)向量上。
但是在 +/- 向量上的投影是相同的,所以对于这个应用程序来说这是一个副本。
示例:
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 2 1
想要的结果:
[,1] [,2]
[1,] 1 2
[2,] 3 4
- 创建矩阵的副本
- 对其每一行进行排序
- 使用
duplicated
函数查找非重复行的索引
- Select 这些行来自原始矩阵
或者如果顺序无关紧要,只需在步骤 2 之后 运行 unique
。
我有以下问题:
我有一个包含唯一行的 k*2 矩阵(之前应用了 unique() 命令),所以重要的部分是它有两列。
现在我只想保留不是另一行排列的行,
但如果有排列,我确实想保留两者之一!
背景:这个矩阵的每个元素都与另一个数据向量的一列相关联,我想取许多 2 个这样的向量的差异,并投影到结果(差异)向量上。 但是在 +/- 向量上的投影是相同的,所以对于这个应用程序来说这是一个副本。
示例:
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 2 1
想要的结果:
[,1] [,2]
[1,] 1 2
[2,] 3 4
- 创建矩阵的副本
- 对其每一行进行排序
- 使用
duplicated
函数查找非重复行的索引 - Select 这些行来自原始矩阵
或者如果顺序无关紧要,只需在步骤 2 之后 运行 unique
。