我在R的“血统”包中使用“makeA”函数,尝试根据谱系文件创建两只绵羊之间相关系数的矩阵。
我的血统文件中有大约56,000只绵羊,其中只有大约26,000只是我需要相关系数的绵羊(因为它们是唯一剩下的活羊)。
我如何使用“which”参数来指定我只想要“状态”列值为“0”的绵羊的相关系数(表明动物还活着/手头)?
我认为如果我能做到这一点,它会使功能运行得更快(此时需要超过30分钟)。有没有人有任何其他可能使它更快的指针?打开尝试任何东西(在我有限的R知识范围内)。
这是我的代码:
library(pedigree)
library(data.table)
library(dplyr)
ped <- read.csv("ped.csv", header = TRUE)
start <- Sys.time()
makeA(ped,which = c(rep(TRUE,NROW(ped))))
end <- Sys.time()
end - start
我稍后会有更多处理步骤,但我甚至没有超过为实际(大)数据集创建原始矩阵的步骤。
请注意,对于较小的数据集,该功能几乎可以立即生效。