|||
计算蛋总重(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()是列累加命令。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 15:57
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社