0

我是 R 编程新手,遇到问题需要帮助。有人告诉我,总体呈正态分布,均值为 4,标准差为 4。总体规模为 10000000。然后我被要求从该总体中抽取 23 个样本,从一个大小为 n = 1 的样本开始并且每个连续样本都比前一个样本大 2 倍,即第一个样本的大小 = 1,然后第二个样本是 n = 2,然后是 n = 4,然后是 n = 8,然后是 n = 16 .... n = 2^23。我可以通过手动绘制每个样本来做到这一点,但我正在寻找一种自动化的方法。可能使用for循环?我知道从一个增加到下一个的因素是 2,但我似乎无法推理出来。请帮忙

4

1 回答 1

0

这是一种基于 R 的方法。

set.seed(1)
Result <- sapply(0:22,function(x){rnorm(n = 2^x, mean = 4, sd = 4)})
Result[1:4]
#[[1]]
#[1] 1.494185
#
#[[2]]
#[1] 4.7345733 0.6574856
#
#[[3]]
#[1] 10.3811232  5.3180311  0.7181265  5.9497162
#
#[[4]]
#[1]  6.953299  6.303125  2.778446 10.047125  5.559373  1.515038 -4.858800  8.499724

这将返回Result一个包含 23 个元素的列表,每个元素包含 2^n 个绘图。

我可以想象有人希望你在这 23 次平局中的每一次平局中都表现得平庸。这也很容易。

sapply(Result,mean)
#[1] 1.494185 2.696029 5.591749 4.599666 4.579945 4.709584 4.289879 3.759900 4.030414 3.806070 3.930797 4.076481 3.939796 3.945899
#[15] 4.058098 3.959156 4.015014 3.989361 4.005028 4.002011 3.999206 3.999296 4.003509
于 2020-04-03T04:15:46.137 回答