R-hist函数画图实例
问题描述
考虑一个简单的遗传模型。一个总体中包含相同数量的两种性别:男性与女性。在每一代中,假设男女随机凑对,并生育一男一女两个孩子。这里我们对前一代至后一代的身高高度分布感兴趣。假设两个孩子身高为其父母高度的平均值,那么身高如何随上一代到下一代而变化。
假设当前年代人的身高包含两个变量,m和f,分别表示男性与女性。其中第一代200人,其身高满足总体身高均值为160,标准差为20。
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | hei = data.frame (m = rnorm (100,160,20), f = rnorm (100,160,20)) #生成一个100行的数据框,包含m和f两列服从均值为160,标准差为20的正态分布的数据 next_gen = function (hei){ #定义一个函数 hei$m = sample (hei$m) #对上一代的m进行简单随机抽样,模拟男女随机配对 hei$m = apply (hei, 1, mean) #对配对结果求均值,赋值给m,就是下一代m的身高 hei$f = hei$m #f=m return (hei) #返回下一代的身高 } opar = par (no. readonly=T) par (mfrow = c (3,3)) gen = hei hist (gen$m, main = "Generation 1" , xlim = c (120,200), xlab = "Height" , col = 'blueviolet' ) mtext ( "Heights by Generation" , side = 3, line = 3) for (i in 2:9) { gen = next_gen (gen) hist (gen$m, main = paste ( "Generation" , i), xlim = c (120,200), xlab = "Height" , col = 'blueviolet' ) } par (opar) |
结果展示
本文作者:Khru
本文链接:https://www.cnblogs.com/khrushchefox/p/16079782.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步