R-识别并删除在另一个矩阵中重复的矩阵行

P·梅

假设我有两个矩阵c1c2我想删除中所有c1重复的行c2

我可以做2个嵌入的for循环,它们扫描c1扫描c2,但是对于大型矩阵来说这太慢了。我需要一个向量化函数。

函数row.match将是完美的,但它仅返回重复项的第一个实例。我需要找到并删除所有这些。

样本数据:

c1 <- matrix( c(1, 0, 2, 0, 2, 5), byrow = TRUE, nrow = 3) 
c2 <- matrix(c(1, 1, 2, 5, 3, 2), byrow = TRUE, nrow = 3)
c1
#>      [,1] [,2]
#> [1,]    1    0
#> [2,]    2    0
#> [3,]    2    5

c2
#>      [,1] [,2]
#> [1,]    1    1
#> [2,]    2    5
#> [3,]    3    2
D b
#DATA
c1 <- matrix( c(1, 0, 2, 5, 4, 5), byrow = TRUE, nrow = 3) 
c2 <- matrix(c(1, 1, 2, 5, 3, 2), byrow = TRUE, nrow = 3)

#Paste the rows together for c1 and c2
c1_s = apply(c1, 1, paste, collapse = ", ")
c2_s = apply(c2, 1, paste, collapse = ", ")

#Get elements common in c1_s and c1_2
c1_c2 = intersect(c1_s, c2_s)

#Present only in c1
c1[!c1_s %in% c1_c2,]
#     [,1] [,2]
#[1,]    1    0
#[2,]    4    5

#Present only in c2
c2[!c2_s %in% c1_c2,]
#     [,1] [,2]
#[1,]    1    1
#[2,]    3    2

#Present in both
c1[c1_s %in% c1_c2, , drop = FALSE]
#     [,1] [,2]
#[1,]    2    5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个没有循环的矩阵的随机块行创建矩阵(在R中)?

根据R中另一个矩阵的行和列对矩阵进行排序

用R中的另一个矩阵替换一个矩阵

用R中的另一个矩阵创建一个矩阵

在“ R”中创建一个矩阵,该矩阵中的每个元素都是另一个矩阵

R:将矩阵与r中的另一个矩阵映射

比较矩阵中的列表与R中的另一个矩阵

根据 r 中的另一个矩阵对矩阵进行排序

通过累加另一个矩阵的行在R中创建新矩阵

如何根据R中另一个矩阵的值生成矩阵

如何使用r中的另一个矩阵通过for循环更改矩阵的值?

R:根据另一个矩阵中的值和坐标为新矩阵赋值

如何在R中将一个矩阵的每一行与另一个矩阵相乘?

R从另一个矩阵中的信息创建一个二进制矩阵

如何删除在R中具有重复项并满足另一个条件的行?

R:从另一个矩阵的元素减去一个矩阵的元素

如何使用另一个向量中的数字来指定 R 中矩阵的名称?

计算行数等于R中另一个矩阵中的行数

将矩阵中的值复制到 r 中的另一个位置

R-根据数据帧中的变量和另一个矩阵的值对矩阵进行子集

如何通过匹配另一个数组来过滤R中的矩阵

如何基于R中的另一个矩阵更改DT表的字体颜色

R:比较读取表中的值并更新另一个矩阵

R ::无论列顺序如何,我如何将一个矩阵的行与另一个矩阵的行匹配?

R:基于另一个矩阵和运行规则的子集矩阵

R - 用来自另一个矩阵的特定数据块的数据填充矩阵

R - 识别并删除重复行的一个实例

根据日期字段和另一个字段,删除R数据框中的重复行

从另一个数据帧中删除数据帧的行,但在 R 中保持重复