Welcome to my blog.|

Khru

园龄:2年11个月粉丝:22关注:1

📂R
2022-03-30 23:37阅读: 160评论: 0推荐: 0

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 中国大陆许可协议进行许可。

posted @   Khru  阅读(160)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起