我必须定义一个函数,该函数将任意数量的矩阵作为参数并返回列表中的所有矩阵,其中在所有返回的矩阵中删除了缺失值。
我已经为一个变量编写了代码
applyDropNaMatrix <- function(X){
apply_mat_list <- apply(Y, MARGIN=1, function(Z) Z[!is.na(Z[])])
return(apply_mat_list)
}
我需要为更多数量的变量(即参数&#34; ...&#34;)实现此函数。解决方案(我不允许使用&#34; complete.cases(x)&#34;
applyDropNaMatrix <- function(...) sapply( list( ... ) , function(X) X[rowSums(is.na(X))==0 , ], simplify=F)
非常感谢你!你和#34; SAVED&#34;我的结束时间:D
答案 0 :(得分:2)
这应该做你需要的(适用于任何类型,不仅仅是矩阵)
put.in.list <- function(...)
{
list(...)
}
要删除我建议的NA
:
my.list <- put.in.list(m1, m2, m3, m4)
my.list.no.NA <- sapply(my.list, function(x){m[complete.cases(m),]}, simplify=F)
请注意simplify=F
强制输出到列表,否则如果列表的所有成员都兼容,则输出可以简化为矩阵。