我對確認的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