MCMCglmm 包装:错误:逆 A 错误:个体出现为水坝,但不在谱系中

问题描述 投票:0回答:3

我正在努力寻找动物的遗传力。当我在函数上使用虚拟数据时,它工作得很好,但是当我从数据库插入数据时,出现以下错误:

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。数据文件非常大,我只输入数据集的前十种动物。

r matrix package matrix-inverse
3个回答
0
投票

我使用 Geneticsped 包中的

extend
函数找到了问题的解决方案。先扩展谱系,然后在mcmcglmm内使用


0
投票

我刚刚遇到了同样的问题,并通过使用不同的方法解决了(因为

geneticsped
包似乎已经过时了)。

请小心您所做的以下操作:“我已删除了谱系中出现但没有任何表型数据的所有动物”。由于可能会删除其中一些 ID MCMCglmm 丢失。

对我来说这解决了问题。另外,请确保传递给具有相同名称的参数的谱系和数据对象是

class dataframe
。例如。

pedigree = data.frame(pedigree)

我正在使用

tidyverse
中的函数处理文件,该函数返回带有
class "spec_tbl_df" "tbl_df" "tbl" "data.frame"
的小标题,这会导致上面发布的相同错误。


0
投票

您找到其他解决方案了吗? 这是因为我有同样的问题,并且这些选项都不适用于我的代码。

© www.soinside.com 2019 - 2024. All rights reserved.