我有一个尺寸为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")
到目前为止(在我的真实矩阵G上)我所做的是:
corrG<-cor(G)
Gtest=G
for (i in 1:nrow(corrG)){
for (j in 1:ncol(corrG)){
if (i<j && corrG[i,j]==1){
Gtest[,j]=NA
}
}
}
Gfinal<-Gtest[,complete.cases(t(Gtest))]
我的代码返回的矩阵仍然包含(!)一些重复的列。
有什么帮助吗?
最佳答案
在矩阵转置上尝试duplicated
函数。
duplicated.columns <- duplicated(t(your.matrix))
new.matrix <- your.matrix[, !duplicated.columns]
关于r - 删除矩阵中的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15904668/