R代码:删除矩阵NA值所在行和列

编写一个函数,只有一个输入变量(变量可以看作是矩阵),将删除了NA值的行和列的子矩阵输出。

delNA <- function(x){
if(!is.matrix(x))
return("输入的参数不是矩阵")
nr = match(NA,x) %% nrow(x)
nc = match(NA,x) %% ncol(x)
x[-nr,-nc]
}
a = matrix(c(1,2,3,4,NA,6,7,8,9),3,3)
delNA(a)
=============================
delNA<-function(x){
index <- which(is.na(x),arr.ind = T)
x[-index[,1],-index[,2]]
}
=============================
delNA <- function(x){
x[complete.cases(x),complete.cases(x)]
}
=============================

你可能感兴趣的:(R代码:删除矩阵NA值所在行和列)