将矩阵转换为R中的累积行平均值矩阵

罗辛南特

我有一个预测矩阵。每行是对单个人的预测,每列是对特定模型的预测。我想对其进行变换,因此第一列是来自第一个模型的预测,第二列是第一第二个模型的预测平均值依此类推。

因此,转换后的矩阵将在原始矩阵中存储观测值的连续累积平均值。

我认为可以将cumsum与apply函数配合使用来实现此目的,但是不确定如何获得优雅的结果(用于大型矩阵)。

谢谢!

马克斯·加尼斯(Max Ghenis)

试试这个:

# Initialize a testing matrix
(m <- matrix(1:12, 3, 4))

     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

# Calculate cumulative average by column for each row
t(apply(m, 1, cumsum) / seq(ncol(m)))

     [,1] [,2] [,3] [,4]
[1,]    1  2.5    4  5.5
[2,]    2  3.5    5  6.5
[3,]    3  4.5    6  7.5

这本质上是逐行累加,然后除以表示列索引的循环数组。

编辑:如果您要对数据框执行类似的操作,则使用data.table和reshape2包的这种方法可能会很有用:

library(data.table)
dt <- data.table(m)
# Add row number to melt by
dt[, row := seq(nrow(dt))]

library(reshape2)
dt.molten <- data.table(melt(dt, "row"))
# Row-level format
dt.molten[, cumsum(value) / as.numeric(variable), "row"]

    row  V1                                                                                          
 1:   1 1.0                                                                                          
 2:   1 2.5                                                                                          
 3:   1 4.0                                                                                          
 4:   1 5.5                                                                                          
 5:   2 2.0                                                                                          
 6:   2 3.5                                                                                          
 7:   2 5.0                                                                                          
 8:   2 6.5                                                                                          
 9:   3 3.0                                                                                          
10:   3 4.5                                                                                          
11:   3 6.0
12:   3 7.5

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将矩阵转换为R中的累积行平均值矩阵

来自分类Dev

用R计算矩阵中对称数据的平均值

来自分类Dev

结构中各个矩阵的平均值

来自分类Dev

Matlab中矩阵的运行平均值

来自分类Dev

列对的矩阵平均值

来自分类Dev

将 data.frame 中的列转换为数字类型以计算 R 中的平均值

来自分类Dev

将价值矩阵转换为其累积乘积矩阵

来自分类Dev

将稀疏矩阵索引列表转换为R中的矩阵

来自分类Dev

3d矩阵R的平均值

来自分类Dev

使用for循环获取矩阵中特定点的平均值

来自分类Dev

Matlab:4维矩阵中的平均值

来自分类Dev

对存储在结构中的所有矩阵求平均值

来自分类Dev

在矩阵中寻找一组值的平均值

来自分类Dev

使用for循环获取矩阵中特定点的平均值

来自分类Dev

如何从python矩阵中取出平均值

来自分类Dev

numpy 矩阵中连续列的平均值

来自分类Dev

如何在ojAlgo矩阵中沿列或行获取元素的平均值?

来自分类Dev

r替换低于矩阵中每列平均值的值

来自分类Dev

如何计算多个矩阵的平均值

来自分类Dev

PostgreSQL中的条件累积平均值

来自分类Dev

将Ruby数组转换为平均值

来自分类Dev

将矩阵转换为Google表格中的行的公式

来自分类Dev

R:计算矩阵中的行均值

来自分类Dev

R:计算矩阵中的行均值

来自分类Dev

将数据帧转换为R中的扩展矩阵

来自分类Dev

将“表”类的对象转换为R中的矩阵

来自分类Dev

如何通过R中的名称将向量转换为矩阵?

来自分类Dev

将矩阵转换为R中的特定列表

来自分类Dev

将xyz数据帧转换为基数R中的矩阵