从多个矩阵中,计算每个矩阵中值的百分比并将它们存储到一个新向量中

From multiple matricies, calculate percentage of a value from each matrix and store them into a new vector

我通过 Whosebug 进行了搜索,但没有找到解决我的具体问题的方法。在这里,我想计算具有 NA 值的多个矩阵中元素的百分比,并将计算结果存储到一个新向量中——具体来说,每个矩阵包含 1、0 和 NA 值。这是我目前所拥有的:

a<-A[!is.na(as.vector(A))] # A, B, C, D are matrices with NA values
b<-B[!is.na(as.vector(B))]
c<-C[!is.na(as.vector(C))]
d<-D[!is.na(as.vector(D))]
mm<-function(x){length(x[names(x)==1)/length(x)]} # make percentage function
Item.1<-lapply(data.frame(a,b,c,d), mm) # apply function to matrices

理论上,在应用计算每个向量的百分比并将它们存储到新向量中的函数之前,我将每个矩阵向量化,删除 NA 值。在这种情况下,我想计算每个矩阵中 1 的百分比。但这是我的输出:

$a
[1] 0

$b
[1] 0

$c
[1] 0

$d
[1] 0

我想我的问题出在函数本身,但我不确定哪里出了问题。此外,非常感谢替代解决方案。

我想多了。下面是我的新功能。

a<-A[!is.na(as.vector(A))] # A, B, C, D are matrices with NA values
b<-B[!is.na(as.vector(B))]
c<-C[!is.na(as.vector(C))]
d<-D[!is.na(as.vector(D))]
mm<-function(x){mean(x==1)} # make percentage function
Item.1<-lapply(data.frame(a,b,c,d), mm) # apply function to matrices