R 删除矩阵中重复的列
我有一个维度为401*5677的数据集。在该矩阵的列中,有相同但列名称不同的列。 现在,我想从重复多次的列中只保留一列,并为删除的列获取索引j 让我们使用以下矩阵作为示例:R 删除矩阵中重复的列,r,R,我有一个维度为401*5677的数据集。在该矩阵的列中,有相同但列名称不同的列。 现在,我想从重复多次的列中只保留一列,并为删除的列获取索引j 让我们使用以下矩阵作为示例: B=matrix(c(1,4,0,2,56,7,1,4,0,33,2,5), nrow=3) colnames(B)<-c("a","b","c","d") B=矩阵(c(1,4,0,2,56,7,1,4,0,33,2,5),nrow=3) colnames(B)tryduplicated函数对矩阵进行转置 dupl
B=matrix(c(1,4,0,2,56,7,1,4,0,33,2,5), nrow=3)
colnames(B)<-c("a","b","c","d")
B=矩阵(c(1,4,0,2,56,7,1,4,0,33,2,5),nrow=3)
colnames(B)tryduplicated
函数对矩阵进行转置
duplicated.columns <- duplicated(t(your.matrix))
new.matrix <- your.matrix[, !duplicated.columns]
duplicated.columns单行答案
B = matrix(c(1, 4, 0, 2, 56, 7, 1, 4, 0, 33, 2, 5), nrow = 3)
colnames(B) <- c("a", "b", "c", "d")
B
## a b c d
## [1,] 1 2 1 33
## [2,] 4 56 4 2
## [3,] 0 7 0 5
B[, !duplicated(t(B))]
## a b d
## [1,] 1 2 33
## [2,] 4 56 2
## [3,] 0 7 5
B=矩阵(c(1,4,0,2,56,7,1,4,0,33,2,5),nrow=3)
colnames(B)是,1行。但OP希望删除列的索引。所以我有一行额外的代码;-)是的,我需要索引,因为我还有一个向量,它的长度等于列数。因此,每当我从矩阵中删除一列时,我还需要从这个向量中删除相应的元素。:)我认为这将是我问题的解决方案(即删除重复的列),但似乎我错过了一些东西。事实上,我需要得到一个满秩(按块)矩阵。矩阵中的块由我之前告诉过你的向量定义。因此,如果向量的前50个元素等于1,这意味着矩阵的前50列属于第1组等。您知道如何获得分块满秩矩阵吗?我建议将其作为单独的问题发布。
B = matrix(c(1, 4, 0, 2, 56, 7, 1, 4, 0, 33, 2, 5), nrow = 3)
colnames(B) <- c("a", "b", "c", "d")
B
## a b c d
## [1,] 1 2 1 33
## [2,] 4 56 4 2
## [3,] 0 7 0 5
B[, !duplicated(t(B))]
## a b d
## [1,] 1 2 33
## [2,] 4 56 2
## [3,] 0 7 5