【发布时间】:2013-02-05 01:05:30
【问题描述】:
我是 R 编程的初学者,正在尝试向具有 50 列的矩阵添加一列。这个新列将是该行中前 10 个值的平均值。
randomMatrix <- generateMatrix(1,5000,100,50)
randomMatrix51 <- matrix(nrow=100, ncol=1)
for(ctr in 1:ncol(randomMatrix)){
randomMatrix51.mat[1,ctr] <- sum(randomMatrix [ctr, 1:10])/10
}
这给出了以下错误
Error in randomMatrix51.mat[1, ctr] <- sum(randomMatrix[ctr, 1:10])/10 :incorrect
number of subscripts on matrix
我试过了
cbind(randomMatrix,sum(randomMatrix [ctr, 1:10])/10)
但它只适用于一行,如果我在循环中使用这个 cbind,所有旧值都会被覆盖。
如何在新列中添加前 10 个值的平均值。除了循环遍历行之外,还有更好的方法吗?
【问题讨论】:
-
我认为您的矩阵索引方式错误,
x[i,j]指的是行i和列j。还有,generateMatrix是从哪里来的? -
这解决了部分问题。但是有没有办法向“randomMatrix”添加一个额外的列。如果不是,我必须将 randomMatrix51 绑定到 'randomMatrix'。 generateMatrix 是带参数的函数(下限、上限、行数、列)。它是 R 标准库中的一个内置函数。
-
标签: r statistics