如何用R语言rnorm()函数生成1000个大小为100的样本?
用rnorm()生成1000个大小为100的正态样本
你的现有代码ech<-rnorm(n)只生成了1个大小为100的正态样本,要生成1000个这样的样本,有两种常用的实现方式:
方法一:用矩阵存储(适合批量操作)
把每个样本作为矩阵的一行(或一列),一次性生成所有数据:
# 定义参数 sample_size <- 100 # 单个样本的观测数 num_samples <- 1000 # 需要生成的样本总数 # 生成1000个大小为100的样本,每行对应一个样本 samples_matrix <- matrix( data = rnorm(sample_size * num_samples), nrow = num_samples, ncol = sample_size )
- 这里
rnorm(sample_size * num_samples)先生成100000个标准正态分布的随机数,再通过matrix()将其拆分为1000行、每行100个元素的矩阵 - 要提取第k个样本,直接用
samples_matrix[k, ]即可
方法二:用列表存储(适合逐个处理样本)
如果需要对每个样本单独做后续操作,用列表存储更灵活:
# 生成包含1000个样本的列表,每个元素是一个长度为100的向量 samples_list <- lapply(1:num_samples, function(x) rnorm(sample_size))
lapply()会循环1000次,每次调用rnorm(sample_size)生成一个样本,最终返回一个包含1000个向量的列表- 要提取第k个样本,用
samples_list[[k]]
验证结果
可以用以下代码确认生成的样本符合要求:
# 检查单个样本的长度 length(samples_list[[1]]) # 输出:100 # 检查样本总数 length(samples_list) # 输出:1000
内容的提问来源于stack exchange,提问作者VBA_Anne_Marie
相关产品推荐
相关产品推荐

