【问题标题】:Binning average of matrix矩阵的分箱平均
【发布时间】:2011-05-13 20:39:18
【问题描述】:

我有一个包含 n 行和 n 列的矩阵,我想一次平均 10 行进行分箱,这意味着最后我留下了一个大小为 n/10×n 的矩阵。我添加了matlab库并尝试了以下代码:

nRemove = rem(size(a,1),10);
a = a(1:end-nRemove,:)      
Avg = mean(reshape(a,10,[],n));
AvgF = squeeze(Avg);

但它不起作用,我应该使用哪些代码/代码?

谢谢!!

【问题讨论】:

    标签: r matrix average binning


    【解决方案1】:

    这是另一种方法:

    set.seed(5)
    
    x = matrix(runif(1000), ncol = 10)
    nr = nrow(x)
    gr = rep(1:floor(nr/10), each = 10)
    aggregate(x ~ gr, FUN=mean)[,-1]
    

    导致

              NA      NA.1      NA.2      NA.3      NA.4      NA.5      NA.6      NA.7
    1  0.5295264 0.5957229 0.4502069 0.5168083 0.3398190 0.4075922 0.6059122 0.5127865
    2  0.4778341 0.3967321 0.4069635 0.4514742 0.6172677 0.2486085 0.6340686 0.4052600
    3  0.5168132 0.5117207 0.5202261 0.5068593 0.5218041 0.4925462 0.5169584 0.4919296
    4  0.3299557 0.3314723 0.4503393 0.3965103 0.6166598 0.5525628 0.4943880 0.6048207
    5  0.6145423 0.5853235 0.4822182 0.3377771 0.3540784 0.5974846 0.5202577 0.5769518
    6  0.5009249 0.5203701 0.3940540 0.4237508 0.3199265 0.4817713 0.4655320 0.6124400
    7  0.7335082 0.5856578 0.3929621 0.6403662 0.5347719 0.5658542 0.4226456 0.7196593
    8  0.4976663 0.5205538 0.4529273 0.4757352 0.6980300 0.5694570 0.4384924 0.5481236
    9  0.5275932 0.5014861 0.5363340 0.5664576 0.5006055 0.5611069 0.3803889 0.4680865
    10 0.4560031 0.5527328 0.4419076 0.6893043 0.5161281 0.5895931 0.3965911 0.3842419
            NA.8      NA.9
    1  0.3711607 0.5541607
    2  0.4379255 0.4159131
    3  0.5048523 0.5884052
    4  0.4642687 0.4572388
    5  0.6054209 0.5174784
    6  0.4659952 0.5332438
    7  0.4568273 0.3943798
    8  0.6978356 0.5087778
    9  0.4897584 0.4710949
    10 0.6310546 0.4775762
    

    【讨论】:

      【解决方案2】:
      t( sapply(1:(NROW(A)/10), function(x) colMeans(A[ x:(x+9), ] ) ) )
      

      您需要转置操作来重新定位结果。在“应用”操作之后,通常需要这样做。

      【讨论】:

        猜你喜欢
        • 2015-05-31
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        • 2018-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多