我对确认的R用户有一些新手问题:-)。我有类的“基因座”的对象与对应于个人的行,和对应于在不同的SNP位点的基因型列(+人口信息1列):运行plyr R库的'ddply'命令的问题
gen.loc Allelic data frame: 283 individuals 151 loci 1 additional variable
as.data.frame(gen.loc) population PBA10091 PBA10106 PBA10242 PBA10272 PBA11037 PBA11455 PBA11744 001 ANTE 01/02 01/01 01/01 02/02 02/02 02/02 01/01
002 ANTE 01/01 01/01 01/01 02/02 01/02 02/02 01/02
003 ANTE 01/01 02/02 01/01 02/02 02/02 01/02 01/01
004 ANTE 01/01 01/01 01/01 02/02 02/02 01/02 01/01
005 ANTE 01/02 02/02 01/01 02/02 02/02 02/02 01/02
006 ANTE 01/01 02/02 01/02 01/02 01/02 02/02 01/01
我中定义的12群我的“人口”专栏。我想计算每个人群内个体之间的成对基因型距离。
只需一个流行的命令是:
d <- dist.gene(gen.loc, method="pairwise", pairwise.deletion = TRUE, variance = FALSE)
它返回与个人之间的配对差异类“DIST”的对象。
但是,我想根据“人口”列的12个级别来分割我的数据框,并使用'apply'函数将此过程分解。
我试图plyr库的 'ddply' 功能:
ddply(as.data.frame(gen.loc), as.data.frame(gen.loc)$population, function(e) dist.gene(e, method="pairwise", pairwise.deletion = TRUE, variance = FALSE))
不幸的是该命令返回一个错误消息:
Error in eval(expr, envir, enclos) : object 'ANTE' not found
'ANTE' 是所述第一出现在数据框中的流行,我猜想分裂出了问题。另外,我猜测结果可能存在问题,因为结果是“dist”对象而不是实际的R数据帧。
有没有更好的方法在这里使用ddply?或者应用dist.gene命令时分割我的数据帧的另一种方法?否则,我想我会只是创建一个输入数据帧每个弹出... :-)不方便,如果一个有大量的流行,但!
感谢您的帮助!
一切顺利,
Chrys