如何在R矩阵中选择唯一列

Ton*_*oni 4 r matrix

我想six在模拟中选择矩阵中的唯一列,如下所示:

> set.seed(3)
> sam = replicate(100, sample(1:3, 4, rep = T))
> (six = sam[,colSums(sam)==6])
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,]    2    1    1    1    1    1    1    1    2     1
[2,]    2    2    3    1    1    2    2    1    2     2
[3,]    1    1    1    1    2    1    1    3    1     1
[4,]    1    2    1    3    2    2    2    1    1     2
Run Code Online (Sandbox Code Playgroud)

我想最终得到一个矩阵:

     [,1] [,2] [,3] [,4] [,5]  [,6] 
[1,]    2    1    1    1    1    1         
[2,]    2    2    3    1    1    1       
[3,]    1    1    1    1    2    3       
[4,]    1    2    1    3    2    1        
Run Code Online (Sandbox Code Playgroud)

Psi*_*dom 10

使用unique函数,MARGIN=2它将返回一个删除了重复列的矩阵,默认情况下,unique删除重复的行:

unique(six, MARGIN = 2)

#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]    2    1    1    1    1    1
#[2,]    2    2    3    1    1    1
#[3,]    1    1    1    1    2    3
#[4,]    1    2    1    3    2    1
Run Code Online (Sandbox Code Playgroud)