확인 된 R 사용자를위한 몇 가지 초보자 질문이 있습니다. :-). 내가 행이 개인에 해당하고, 열이 서로 다른 SNP 유전자 좌의 유전자형에 대응하는 "유전자좌"클래스의 객체가 (인구 정보는 1 열 +) : 난에 정의되어 있습니다 (12 명) 인구를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
이 나의 "인구"란. 나는 각 개체군 내의 개체 들간에 pairwise genotypic distance를 계산하려고한다. 한 팝으로
이 명령은 다음과 같습니다 그것은 개인 사이의 페어 차이 클래스 'DIST'의 개체를 반환
d <- dist.gene(gen.loc, method="pairwise", pairwise.deletion = TRUE, variance = FALSE)
.
그러나 필자는 "채우기"열의 12 단계에 따라 데이터 프레임을 분할하고 '적용'기능을 사용하여이 절차를 분해하려고합니다.
ddply(as.data.frame(gen.loc), as.data.frame(gen.loc)$population, function(e) dist.gene(e, method="pairwise", pairwise.deletion = TRUE, variance = FALSE))
불행하게도이 명령은 오류 메시지를 반환 :
은 내가 plyr 라이브러리의 'ddply'기능을 시도Error in eval(expr, envir, enclos) : object 'ANTE' not found
을 '앤티'는 첫 번째 인 pop이 데이터 프레임에 나타나면 어떻게 든 분할이 잘못되었다고 생각합니다. 또한 dist.gene 결과가 실제 R 데이터 프레임이 아닌 'dist'개체라는 사실에 문제가있을 수 있다고 생각합니다.
여기에 ddply를 사용하는 더 좋은 방법이 있습니까? 또는 dist.gene 명령을 적용하면서 데이터 프레임을 분할하는 또 다른 방법은 무엇입니까? 그렇지 않으면 나는 pop ... 당 하나의 입력 데이터 프레임을 만들 것이라고 생각한다. :-) 하나의 pop이 많은 경우 편리하지 않다 !!
도움 주셔서 감사합니다.
모든 최선을,