2016-10-27 3 views
-2

snp을 유전자지도로 만들고, 50kb의 snp로 매핑 한 후 다음 파일을 가지고 있습니다. 예 : (snp, gene, pvalue)가장 낮은 p 값을 갖는 유전자지도로의 snp

1. ars113 ap1 0.1 
2. ars113 ap1 0.1 
3. ars113 ap1 0.2 
4. ars113 ap1 0.2 
5. ars113 ap2 0.1 
6. ars113 ap2 0.2 
7. ars114 ap6 0.1 
8. ars114 ap6 0.3 

각 유전자의 p 값이 가장 낮은 마커 만 선택할 수 있습니까? 전체 프로세스를위한 다른 쉬운 방법이 있습니까?

답변

0

이렇게해야합니다.

aggregate(pvalue ~ gene + snp, df, min) 

또는 당신은 더 넓은 포맷하려면 :

tapply(df$pvalue, INDEX=list(df$gene, df$snp), min) 
0

읽기 파일에 dataframe 등을, 각 유전자의 최소 유의 확률에 대한 유전자 및 필터에 의해 다음 그룹 dataframe.

library(dplyr) 
library(readr) 

df <- read_delim("filename.txt", delim = " ", col_names = c("snp", "gene", "pvalue")) 
df %>% group_by(gene) %>% filter(pvalue == min(pvalue)) 
관련 문제