刪除一個矩陣中相同的列

1 利用as.data.frame函數將矩陣轉化爲dataframe

2 dataframe的列進行遍歷

3all()函數來判斷兩個列比較的邏輯值否相等

4 若是相同,則刪除,當前的下標不變

5若是不同。則j <- j+1

#刪除數據框的命令用A[,j] <-  NULL

附註R語言代碼

f <- function(A)
{
  B <- as.data.frame(A)
  t <- ncol(B)
  i <- 1
  while(i<ncol(B))#B的列數是變h化的
  {

    j <- i+1
    while(j<=ncol(B))
    {
      if(all(B[,i]== B[,j]))
      {
        B[,j] <- NULL#刪除之後,待比較的元素下標值不變
      }
      else
      {
        j <- j + 1
      }
    }
   
    i <- i + 1
  }
  return(B)
}

A <- cbind(eye(3,4),eye(3,4))
f(A)
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章