我创建了一个函数,它可以求出矩阵中所有列的平均值,如下所示:
Finding_mean <- function(m = c(matrix)) {
i = 1
while(i < 15){
matrix_mean = (mean(matrix[,i],na.rm=TRUE))
print(matrix_mean)
i = i + 1
}
}
输出如下所示:
[1] 38.921
[1] 7.702
[1] 6.259
[1] 1.026
[1] 4.635
[1] 0.069
[1] 4.261
[1] 32.007
[1] 30.866
[1] 9.123916
[1] 0.4012346
[1] 24.11404
[1] 10.33333
[1] 62.873
我希望列的名称与值沿着打印,而不仅仅是值,如下所示:
white = 38.921
black = 7.702
我想让这段代码在while循环中打印列的名称,因此我需要一个函数,当我给予它矩阵名称和列号时,它会打印列的名称。
colnames(matrix[1, i)
这将导致null,我知道这是因为行和列的名称不能通过索引调用,但是还有什么选择呢?
救命啊!
4条答案
按热度按时间ubof19bj1#
在R中,您可以不使用loop和while来实现这一点。
R基础代码:
使用以下代码创建矩阵:
lmvvr0a82#
它使用 Dataframe 工作:
nzk0hqpo3#
如果您确实是从矩阵开始,则使用
colMeans()
或apply()
是有意义的。例如:创建于2023年3月4日,使用reprex v2.0.2
如果
m
真的是一个 Dataframe ,这就不是一个好的解决方案,因为它会把它转换成一个矩阵。创建于2023年3月4日,使用reprex v2.0.2
fslejnso4#
colMeans和as.matrix都保留名称,因此这会给出所需的输出,并且比使用 *apply函数之一更高效和自文档化:
此外,您还可以使用名称为该结构建立索引: