smileleaf的个人博客分享 http://blog.sciencenet.cn/u/smileleaf

博文

计算蛋总重

已有 1939 次阅读 2017-1-19 14:29 |个人分类:遗传评估|系统分类:科研笔记| 矩阵, 蛋鸡, 线性内插法

 计算蛋总重(egg mass)是一项耗时费力的工作,需要每周平均蛋重(egg weight or egg size)乘以周产蛋数,然后累加。本文介绍两个小技巧,用于蛋总重计算。

1.内插法补齐缺失记录,或者预测新插点数值。

完美生产记录可遇而不可求。有的个体缺失蛋重记录,有时缺少整周蛋重记录。对于这些只有产蛋记录的个体,可通过内插法补齐缺失记录。本人比较了线性内插、两种smooth方法,找出蛋重宜选用线性内插中可使用approx()命令。脚本如下:

x <- matrix(seq(32,60,4),8,1)

#构建每周平均蛋重相应的向量。

for (n in 1:2132){

tt <- approx(x,temp2[n,],seq(32,60,1))

ew2 <- rbind(ew2,tt$y)}

write.csv(file="ew2.csv",ew2)

##稍作解释:我的数据共有2132条蛋重记录,以csv格式存在一个文件,通过R写入temp2。


2.借助矩阵和R,简单几个命令解决繁杂计算。以下是运行脚本:

ew <- as.matrix(read.csv(file="ew.csv",sep=",",header=F))

#将每周蛋重转换成矩阵。ew.csv是excel文件,每列数据为一个杂交组合,没有表头。

en <- as.matrix(read.csv(file="en.csv",sep=",",header=F))

#将每周产蛋数转换成矩阵。

sum_ew <- ew*en

#矩阵对应元素相乘,得到每周总蛋重。

write.csv(file=”sum.csv”,colSums(sum_ew))

#计算结果写入sum.csv文件,colSums()是列累加命令。




http://blog.sciencenet.cn/blog-522896-1028606.html

上一篇:修复ubuntu系统不识别U盘
下一篇:Endnote:在 (author,year)与author(year)之间自由转换

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-9-22 14:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部