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")

到目前为止(在我的真实矩阵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/

相关文章:

R需要提取月份并分配季节

r - 如何在 R Shiny 应用程序中存储 react 变量的先前状态?

list - 防止 unlist 删除 NULL 值

r - 过滤行的条件是必须至少存在两个不同的关键字

r - 直接在 r 中加载时存储变量

r - 为什么源速度与 RStudio 控制台行代码不同?

r - 如果 "OR"有多个条件

r - 使用 update 和 purrr 更新线性回归模型

r - 检查和可视化大型数据框中的间隙/空白和结构

r - 如何对 "Origin-Destination"数据帧进行分组求和?