我正在努力寻找动物的遗传力。当我在函数上使用虚拟数据时,它工作得很好,但是当我从数据库插入数据时,出现以下错误:
inverseA 中的错误(谱系 = 谱系,尺度 = 尺度,节点 = 节点): 个体出现为母亲但不在谱系中
我已经删除了所有出现在谱系中但没有任何表型数据的动物,但错误仍然存在。
prior <- list(R = list(V = 1, nu = 0.002), G = list(G1 = list(V = 1, nu = 0.002), G2 = list(V = 1, nu = 0.002)))
heritmodel <- MCMCglmm(birthweight ~ 1, random = ~animal + year, family = "gaussian", prior = prior, pedigree = pedigree, data = data, nitt = 1e+05, burnin = 10000, thin = 10)
PS。数据文件非常大,我只输入数据集的前十种动物。
我使用 Geneticsped 包中的
extend
函数找到了问题的解决方案。先扩展谱系,然后在mcmcglmm内使用
我刚刚遇到了同样的问题,并通过使用不同的方法解决了(因为
geneticsped
包似乎已经过时了)。
请小心您所做的以下操作:“我已删除了谱系中出现但没有任何表型数据的所有动物”。由于可能会删除其中一些 ID MCMCglmm 丢失。
对我来说这解决了问题。另外,请确保传递给具有相同名称的参数的谱系和数据对象是
class dataframe
。例如。
pedigree = data.frame(pedigree)
我正在使用
tidyverse
中的函数处理文件,该函数返回带有 class "spec_tbl_df" "tbl_df" "tbl" "data.frame"
的小标题,这会导致上面发布的相同错误。
您找到其他解决方案了吗? 这是因为我有同样的问题,并且这些选项都不适用于我的代码。