Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在筛选的矩阵列中使用apply函数?_R_Conditional Statements_Apply_Mean - Fatal编程技术网

R 如何在筛选的矩阵列中使用apply函数?

R 如何在筛选的矩阵列中使用apply函数?,r,conditional-statements,apply,mean,R,Conditional Statements,Apply,Mean,创建一个矩阵,其中包含(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 如果要获得每组行的平均值,则过滤后的行数不是常数且等于固定数(将根据条件过滤器而变化)根据更新后的帖子,我们可以使用分组变量作为第一列 tapply(AllFilte

创建一个矩阵,其中包含(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

如果要获得每组行的平均值,则过滤后的行数不是常数且等于固定数(将根据条件过滤器而变化)

根据更新后的帖子,我们可以使用分组变量作为第一列

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

根据每个区块的nrows,你每3行做一次colMeans?我不明白这个问题。为什么要为创建
AllFiltered
?它与每10行的平均值有什么关系?您期望的输出与所有这些有什么关系?我们只是在寻找?谢谢您的评论@davidernburg。显然,我对更新我的评论之前使用的奇怪的初始索引感到困惑。我只对变量x感兴趣,并且想在我有10*10行之前计算每个过滤块的x的平均值。在条件之后,我有均值(前3行的x),然后均值(后3行的x),然后均值(后2行的x)。因此,我要求和的行数不是常数。我希望最终得到10个x(感兴趣的变量)的平均值,与之前一样,但这次由于条件==1而过滤。谢谢你的见解@KonstantinosPat您能检查一下这是否对您有效吗?非常感谢您,它确实有效。我不知道分组变量选项。gr我认为@akrun guess应该是正确的。此外,必须强调的是,可以使用
taply(All[,3]、list(All[,1]、All[,2])、FUN=mean)
来避免过滤部件,该选项显示每个条件和索引的平均值。@nicola和akrun。这两个答案都有针对性,并解决了我的问题。再次感谢你。
       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)