2017-10-14 80 views
0
矩陣

所以我建立我自己的函數從矩陣刪除丟失的值:做一個函數作爲輸入讀取只有2列

removeMiss <- function(data) { 
    removed <<- data[complete.cases(data), ] 
    return(mat_NA_removed) 
} 

但我想,以調節功能,只用2列工作矩陣

+0

你能否提供一個可重現的例子 –

回答

0

以下是不完美的,但做你想做的。
首先,一些測試數據,因爲你還沒有提供數據集。一個矩陣有2列,另一個有3列。

set.seed(7201) 
mat1 <- 1:24 
mat1[sample(24, 5)] <- NA 
mat2 <- mat1 
dim(mat1) <- c(12, 2) 
dim(mat2) <- c(8, 3) 

現在,代碼。

removeMiss <- function(data) { 
    dataname <- deparse(substitute(data)) 
    if(!inherits(data, "matrix")) 
     stop(paste(sQuote(dataname), "is not an object of class 'matrix'")) 
    if(ncol(data) == 2){ 
     data <- data[complete.cases(data), ] 
    } else { 
     warning(paste("Matrix", sQuote(dataname), "does not have 2 columns")) 
    } 
    data 
} 

removeMiss(mat1) 
removeMiss(mat2) 

注:

  1. 如果對象data不是matrix類的功能發出錯誤;
  2. 如果矩陣data不完全具有2列,則會發出警告。

在這種情況下data沒有2列,它不會改變,這意味着,如果有NA值,他們將被刪除。

相關問題