2015-01-09 3 views
2

저는 R에 비해 비교적 새롭고 특정 범위에 속하는 값의 수를 확인하는 것에 대한 질문이있었습니다.특정 범위의 값 수 확인

셀 유형 (20 셀 유형)으로 컬럼 이름이있는 데이터 테이블이 있고 각 셀 유형에 대해 23000 개 유전자의 행 이름과 메틸화 값 (0과 1 사이)이 있습니다. 나는 유전자의 수를 식별하기 위해 아래의 데이터 세트 (내가 분명히 희망!) 내가하고 싶은 무엇

    MCF-7  T47D  Kuramochhi CAOV4  JHOS4 
cg00964109 0.03425448 0.042629239 0.08461351 0.04095205 0.039999 
cg00967316 0.44065041 0.800911854 0.35689046 0.63291139 0.812005277 
cg00968475 0.64207018 0.910031909 0.06120248 0.84703547 0.084849946 

루프 (또는 더 쉬운 방법 가능한 경우를!) 실행의 샘플을 제공 한 0-0.0999, 0.1-0.1999, 0.2-0.29999 등 각 세포 유형에 대해 0.9-1까지 메틸화 값이 있습니다. 또한 전체 데이터 표에 대해 유사한 분석 (앞서 언급 한 범위의 메틸화 값을 가진 유전자의 수)을 수행하고자합니다.

답변

1

여기에 하나의 접근 방식 :

R> apply(Data,2,function(x){ 
     table(cut(x,seq(0,1,.1),right=F)) 
    }) 
      MCF-7 T47D Kuramochhi CAOV4 JHOS4 
[0,0.1)  99 105  102 103 100 
[0.1,0.2) 99 90  116 105 102 
[0.2,0.3) 98 103   93 92 97 
[0.3,0.4) 108 91   91 93 105 
[0.4,0.5) 103 114  104 101 107 
[0.5,0.6) 100 111   77 97 105 
[0.6,0.7) 98 89  110 103 102 
[0.7,0.8) 97 100  110 81 109 
[0.8,0.9) 106 112   90 110 94 
[0.9,1)  92 85  107 115 79 

데이터 :

set.seed(123) 
Data <- matrix(runif(5000),ncol=5, 
       dimnames=list(
       paste0("gene_",1:1000), 
       c('MCF-7','T47D','Kuramochhi', 
        'CAOV4','JHOS4'))) 
-1

이 적어도 당신이 시작 얻어야한다 :

x <- read.table(text="MCF-7  T47D  Kuramochhi CAOV4  JHOS4 
cg00964109 0.03425448 0.042629239 0.08461351 0.04095205 0.039999 
cg00967316 0.44065041 0.800911854 0.35689046 0.63291139 0.812005277 
cg00968475 0.64207018 0.910031909 0.06120248 0.84703547 0.084849946") 

apply(x, 1, function(value) length(which(value <= 0.0999))) 
apply(x, 1, function(value) length(which(value >= 0.1 & value <= 0.1999))) 
apply(x, 1, function(value) length(which(value >= 0.2 & value <= 0.2999)))