当某些个体只知道一个父母时,在R中创建一个系谱?
当某些个体只知道一个父母时,有没有办法在R中建立一个谱系 我曾尝试在R中使用kinship2软件包创建一个谱系,但我相信这只能处理没有父母知道的情况(被认为是第1代),然后父母双方都知道的情况 我相信synbreed软件包能够处理这个问题,我已经尝试了下面的代码,但由于某种原因,我收到了一个无法破译的错误代码。我的数据结构是否有问题?或者我是如何表述create.pedigree()函数的参数的?或者在Synbride软件包中不可能构建这个系谱 请注意,数据帧“Ped”的第5行和第6行只有一个父ID当某些个体只知道一个父母时,在R中创建一个系谱?,r,error-handling,R,Error Handling,当某些个体只知道一个父母时,有没有办法在R中建立一个谱系 我曾尝试在R中使用kinship2软件包创建一个谱系,但我相信这只能处理没有父母知道的情况(被认为是第1代),然后父母双方都知道的情况 我相信synbreed软件包能够处理这个问题,我已经尝试了下面的代码,但由于某种原因,我收到了一个无法破译的错误代码。我的数据结构是否有问题?或者我是如何表述create.pedigree()函数的参数的?或者在Synbride软件包中不可能构建这个系谱 请注意,数据帧“Ped”的第5行和第6行只有一个父
> Ped<-read.csv("Pedigree.csv",header=T)
> library(synbreed)
> head(Ped)
IndividualID SireID DamID Sex
1 019-35751 026-34118 026-34117 male
2 019-35740 <NA> <NA> female
3 019-35791 026-34129 026-34128 male
4 019-35702 <NA> <NA> male
5 019-35784 <NA> 026-34147 female
6 019-35764 <NA> 026-34133 male
> str(Ped)
'data.frame': 1136 obs. of 4 variables:
$ IndividualID: Factor w/ 1136 levels "019-35702","019-35712",..: 6 4 10 1 9 8 3 63 62 108 ...
$ SireID : Factor w/ 136 levels "019-35712","019-35756",..: 8 NA 15 NA NA NA 23 23 23 84 ...
$ DamID : Factor w/ 131 levels "026-34101","026-34103",..: 4 NA 7 NA 13 8 NA NA NA 30 ...
$ Sex : Factor w/ 2 levels "female","male": 2 1 2 2 1 2 2 2 2 2 ...
> create.pedigree(Ped$IndividualID, Ped$SireID, Ped$DamID , unknown = NA)
Error in `[<-.data.frame`(`*tmp*`, is.na(pedigree), value = 0) :
unsupported matrix index in replacement
Ped库(Synbride)
>头部(Ped)
个体性
1019-35751026-34118 026-34117男
2019-35740女
3019-35791026-34129 026-34128男
4019-35702男
5019-35784026-34147女
6019-35764 026-34133男
>str(Ped)
“数据帧”:1136 obs。共有4个变量:
$IndividualID:系数w/1136级别“019-35702”、“019-35712”、..:6 4 10 1 9 8 3 63 62 108。。。
$SireID:系数w/136水平“019-35712”、“019-35756”、..:8不适用15不适用23 23 84。。。
$DamID:系数w/131水平“026-34101”、“026-34103”。。。
$性别:系数w/2级“女性”,“男性”:2 1 2 2 2。。。
>create.系谱(Ped$IndividualID,Ped$SireID,Ped$DamID,unknown=NA)
“[中的错误我不知道
synbride
包以及它对只有一个已知父母的个体所做的假设,因此下面的答案可能与您所寻找的不同
但是,如果您知道/相信未知的父母是指独立的个人,那么您可以通过添加“空”父母来“修复”数据集
一个类似于你展示的玩具数据集可能是
fid id father mother sex
1 1 . . 1
1 2 . . 2
1 3 1 2 1
1 4 1 2 1
1 5 . 2 2
1 6 . 2 1
在这里,我们为个人5和6找到了缺失的父亲。然后我们添加了两个新条目来表示我们没有看到的父亲。因此,数据集应该是
fid id father mother sex
1 1 . . 1
1 2 . . 2
1 3 1 2 1
1 4 1 2 1
1 100 . . 1
1 101 . . 1
1 5 100 2 2
1 6 101 2 1
在这里,我们添加了两个新的父亲,他们只用于填写谱系结构
library(kinship2)
indata <- read.table("ped.txt", header=TRUE, na.strings=".")
with(indata, pedigree(id=id, dadid=father, momid=mother, sex=sex, famid=fid))
库(kinship2)
因达塔