【问题标题】:Extract unique elements in each row of a matrix [duplicate]在矩阵的每一行中提取唯一元素[重复]
【发布时间】:2020-03-13 18:34:39
【问题描述】:

我有一个用整数填充的大矩阵。我想创建一个包含相同信息但按行删除所有重复项并将它们替换为零的第二个矩阵。

例如,我需要转换以下矩阵:

第 1 行:[1,2,3,2,3,4]
第 2 行:[3,4,2,2,1,6]

到:

第 1 行:[1,2,3,0,0,4]
第 2 行:[3,4,2,0,1,6]。

我可以使用循环很容易地做到这一点,但由于我正在处理大数据,我试图避免循环。有没有办法做到这一点?

我是 R 新手,所以希望这一切都有意义。我感谢任何和所有的帮助!

【问题讨论】:

    标签: r dataframe matrix unique


    【解决方案1】:

    我们可以使用duplicatedapply

    m1[] <- t(apply(m1, 1, function(x) replace(x, duplicated(x), 0)))
    

    或者更简洁

    t(!apply(m1, 1, duplicated)) * m1
    

    数据

    m1 <- rbind(c(1, 2, 3, 2, 3, 4), c(3, 4, 2, 2, 1, 6))
    

    【讨论】:

      猜你喜欢
      • 2017-10-10
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多