簡體   English   中英

如何在過濾矩陣列中使用Apply函數?

[英]How to use apply function in a filtered matrix column?

創建具有(1)指標,(2)條件和(3)感興趣變量x的矩陣

z<-rep(1:10,each=10)
set.seed(974); cond=rbinom(100,3,0.5)
set.seed(974) ; x=rnorm(100,1,10)
All<-cbind(z,cond,x) ; All

使用整個數據集,我可以使用求和或求和來計算感興趣的數量。 例如,每10行的平均值。

colSums(matrix(as.numeric(All[,3]), nrow=10))/10
apply(matrix(as.numeric(All[,3]), nrow=10),2,mean)

# Filtered dataset.
AllFiltered<-All[All[,2]==1,]

現在,當我執行過濾時,nrow不是恆定的,例如(1,2,3,3)。 是否可以對每組單獨的行過濾數據執行與上述相同的操作?

Allfiltered的示例

       z cond           x
 [1,]  1    1 -10.5135290

 [2,]  2    1 -10.9883098
 [3,]  2    1  12.9269151

 [4,]  3    1   5.1725988
 [5,]  3    1  -1.5633754
 [6,]  3    1  -1.3470068

 [7,]  4    1  12.6646369
 [8,]  4    1  -9.7694997
 [9,]  4    1   4.8618008

想要獲取每組行的平均值,其中過濾后的行數不是恆定且等於固定數(將根據條件過濾器而變化)

根據更新的帖子,我們可以將分組變量用作第一列

tapply(AllFiltered[,3], AllFiltered[,1], FUN= mean)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM