R语言中如何通过for循环遍历自定义函数完成批量计算与散点图绘制
R语言批量模拟计算与可视化实现流程
核心任务目标
- 编写自定义函数
bday.function,接收指定样本量参数后,重复执行1000次1-365范围的有放回随机抽样,计算抽样结果中不出现数值1的概率 - 对500至1500区间的全部样本量值做批量计算,最终绘制样本量与对应无1概率关系的散点图
自定义函数的逻辑优化
最初编写的bday.function存在冗余实现,包含多余的table频次统计、数据框格式转换步骤,运行路径冗长。优化后直接通过逻辑判断完成概率统计:
- 核心判断逻辑:单次抽样得到的结果向量中,若不存在数值1则记为一次有效模拟;1000次模拟的有效次数占比,即为目标概率
- 单函数准确性验证:手动调用
bday.function(750),输出结果为0.122,符合模拟预期,证明单参数下的函数运行准确
批量循环与可视化实现
最初编写的for循环存在逻辑缺陷,无法正确完成批量计算与可视化,调整后的实现步骤:
- 预定义长度为1000的结果存储向量
z,规避循环中动态扩写向量带来的性能损耗 - 生成覆盖500-1500全范围的样本量索引向量
tmp.index - 通过
seq_along遍历索引序列,逐次传入对应样本量值调用bday.function,将返回结果按顺序存入z的对应位置 - 调用基础绘图函数
plot,以样本量为x轴、无1概率为y轴,生成目标散点图
内容的提问来源于stack exchange,提问作者myfatson
相关产品推荐
相关产品推荐

