我搜索了stackoverflow,但未能找到解决我特定问题的方法。在这里,我想计算具有NA值的多个矩阵中元素的百分比,并将计算存储到新的向量中 - 具体来说,每个矩阵包含1s,0s和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
我猜测我的问题在于功能本身,尽管我不确定是什么错。此外,非常感谢替代解决方案。
答案 0 :(得分: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