我想在一行中合并多行,其中这些行具有相同的列元素位置.
输入:
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)
请注意,合并的行显示合并行之间的最小值.
给定矩阵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.