我搜索了堆叠溢出,但没有找到解决我的具体问题的办法。这里,我想要计算一个元素从多个具有NA值的矩阵中所占的百分比,并将计算结果存储到一个新的向量中--具体来说,每个矩阵包含1s、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值,然后应用函数从每个向量中计算百分比并将它们存储到一个新的向量中。在这种情况下,我想要计算每个矩阵中1s的百分比。但这是我的输出:
$a
[1] 0
$b
[1] 0
$c
[1] 0
$d
[1] 0我猜测我的问题在于功能本身,虽然我不确定是怎么回事。此外,其他解决办法也受到极大的赞赏。
发布于 2015-02-26 09:59:36
我想太多了。下面是我的新功能。
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 matriceshttps://stackoverflow.com/questions/28738773
复制相似问题