繁体   English   中英

在R中,当有三列时,如何在行中找到唯一的数字对?

[英]In R, how can I find unique pairs of numbers across rows when there are three columns?

我正在使用R中的三角形网格。对于不熟悉的人,PLY格式有两个主要成分,一个顶点x,y,z坐标的3 x n矩阵,其中n是顶点数,一个3 x m矩阵表示每个数字都引用顶点矩阵中的一条线的面,因此定义了三角形面的三个角。 我试图找到网格边界边,它们是在面矩阵中仅被引用一次的三角形的“边”。

因此,我的问题是,如何在三列的行中找到唯一的数字对?

face 1 4 6 7
face 2 7 6 8
face 3 9 11 12 
face 4 10 9 12

线(面)1的边缘4-7仅出现一次,而6-7出现两次,9-12也是如此。 unique()可跨行工作,但会查找唯一的行,并期望数字顺序相同。 有什么建议么?

您要做的是对每对进行哈希处理,然后创建一个哈希表。 您还希望(x,y)与(y,x)相同。

R>data
    V1 V2 V3 V4 V5
1 face  1  4  6  7
2 face  2  7  6  8
3 face  3  9 11 12
4 face  4 10  9 12
R>e1 <- pmin(data[3],  data[4]) + pmax(data[3], data[4])/100
R>e2 <- pmin(data[3],  data[5]) + pmax(data[3], data[5])/100
R>e3 <- pmin(data[4],  data[5]) + pmax(data[4], data[5])/100
R>table(c(e1,e2,e3, recursive=TRUE))
 4.06  4.07  6.07  6.08  7.08   9.1  9.11  9.12 10.12 11.12
    1     1     2     1     1     1     1     2     1     1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM