R - 合并多行矩阵,表示行元素的公共列位置?

lod*_*deg 2 r matrix

我想在一行中合并多行,其中这些行具有相同的列元素位置.

输入:

      one two three four five
[1,]   1   1    1    0     0
[2,]   2   2    2    0     0
[3,]   0   0    3    3     3
[4,]   4   4    4    0     0
[5,]   0   0    5    5     5
[6,]   6   0    6    0     6
Run Code Online (Sandbox Code Playgroud)

输出矩阵必须像这样:

       one two three four five
[1,]   1   1    1    0     0
[2,]   0   0    3    3     3
[3,]   6   0    6    0     6
Run Code Online (Sandbox Code Playgroud)

请注意,合并的行显示合并行之间的最小值.

Mar*_*pov 5

给定矩阵m,您可以:

m[!duplicated(m==0),]
#     one two three four five
#[1,]   1   1     1    0    0
#[3,]   0   0     3    3    3
#[6,]   6   0     6    0    6
Run Code Online (Sandbox Code Playgroud)

m==0返回逻辑矩阵,duplicated返回指示重复行的逻辑向量,用于子集矩阵m.