Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当某些个体只知道一个父母时,在R中创建一个系谱?_R_Error Handling - Fatal编程技术网

当某些个体只知道一个父母时,在R中创建一个系谱?

当某些个体只知道一个父母时,在R中创建一个系谱?,r,error-handling,R,Error Handling,当某些个体只知道一个父母时,有没有办法在R中建立一个谱系 我曾尝试在R中使用kinship2软件包创建一个谱系,但我相信这只能处理没有父母知道的情况(被认为是第1代),然后父母双方都知道的情况 我相信synbreed软件包能够处理这个问题,我已经尝试了下面的代码,但由于某种原因,我收到了一个无法破译的错误代码。我的数据结构是否有问题?或者我是如何表述create.pedigree()函数的参数的?或者在Synbride软件包中不可能构建这个系谱 请注意,数据帧“Ped”的第5行和第6行只有一个父

当某些个体只知道一个父母时,有没有办法在R中建立一个谱系

我曾尝试在R中使用kinship2软件包创建一个谱系,但我相信这只能处理没有父母知道的情况(被认为是第1代),然后父母双方都知道的情况

我相信synbreed软件包能够处理这个问题,我已经尝试了下面的代码,但由于某种原因,我收到了一个无法破译的错误代码。我的数据结构是否有问题?或者我是如何表述create.pedigree()函数的参数的?或者在Synbride软件包中不可能构建这个系谱

请注意,数据帧“Ped”的第5行和第6行只有一个父ID

> 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)
因达塔