首页 > 解决方案 > 生成一个具有特定值的矩阵,使其标准差为 1?

问题描述

我目前正在阅读一本“R 简介”一书,我完全陷入了以下问题:

创建一个 5x5 矩阵 (M),其所有条目均来自均匀分布,其中 sd 1 和 mean 是元素的列号。(所以平均(矩阵[,I])==列(i),sd(矩阵)== 1)

我必须使用该sapply()功能。

我在想这样的事情:

m <- matrix(runif(25), nrow = 5, ncol = 50
sapply(matrix, function(x) sd(x) == 1)

但是那部分已经不起作用了,我只是卡住了。帮助将不胜感激!

标签: r

解决方案


平均值可以通过以下方式设置:

my_uniform <- function(col_nbr) {
  runif(5, min = col_nbr-sqrt(12)/2, max=col_nbr+sqrt(12)/2)
}

M <- sapply(1:5, my_uniform)

这将导致每列的 std=1 并且平均值设置为每列中的列数。均值的公式是:

意思是

sdt 的公式为:

性病


推荐阅读