2014-02-24 1 views
0

82723과 같은 의미를 가져야하는 데이터 프레임의 한 열에있는 값에서 무작위 집합을 생성하고 샘플로 가져온 데이터 프레임의 행을 인쇄하려고합니다. 이 코드를 사용했지만 작동하지 않는 것으로 들립니다.특정 분포를 갖는 무작위 샘플 생성

내 데이터는 다음과 같이 인

while(x<-sample(negative_set$V4, size=91)) { 
+ if (mean(x)==821800:821700)print 

감사 :

V1  V2  V3  V4  V5 
1 chr1 752751 753092 7603 ENSG00000240453.1 
2 chr1 752751 755214 2463 ENSG00000177757.1 
3 chr1 761586 762902 1316 ENSG00000225880.4 
4 chr1 879584 879955 19695 ENSG00000187634.6 
5 chr1 879584 894689 15105 ENSG00000188976.6 
6 chr1 934342 935552 1210 ENSG00000188290.6 
7 chr1 1167629 1170421 2792 ENSG00000176022.3 
8 chr1 1340841 1341132 291  ENSG00000264293.1 
9 chr1 1370241 1378262 8021 ENSG00000179403.10 
10 chr1 1550795 1551175 2037 ENSG00000272106.1 
11 chr1 1550795 1565990 15195 ENSG00000197530.8 
12 chr1 1592939 1594063 3277 ENSG00000272004.1 
13 chr1 1592939 1624167 31228 ENSG00000189339.7 

출력이 동일한 포맷이지만 V4 열의 82,800의 평균으로해야한다.

+0

아무도 스택 오버플로를 환영합니다 ... StackOverflow에 오신 것을 환영합니다! 귀하의 질문은 [bioconductor] (http://www.bioconductor.org/)와 관련이있는 것 같습니다. 그러나 잘 이해한다면 샘플 데이터의 행을 평균값이 하나의 값 또는 일부 값과 동일하게 인쇄하려고합니다. 그게 사실이야? 주어진 데이터의 출력이 어떻게되어야할까요? – Llopis

+0

고마워, 네가 올바르게 이해했다. 출력은 입력과 같아야하지만 값의 V4 평균은 내가 갖고 있어야하는 행을 지정합니다. – sepehr

답변

0

출력에 제약 조건을 적용 할 때 "무작위"로 간주되는 것을 말하는 것은 약간 까다 롭습니다. 예를 들어 n 개의 샘플을 생성하고 평균 $ mean_n $을 계산 한 다음 V4 값이 $ n * (82800-mean_n) $ 인 행을 찾습니다. 귀하의 실제 V4 데이터 세트가 주어지면 달성 할 수 없을 수도 있습니다.

아마도 당신이 정말로 원하는 것입니다 : 1) 그 값이 82,800보다 작은 경우 무작위로 ) mean(V4) 2를 계산하는 값이 8200보다 큰 경우 V4< 82800 3), 무작위로 을 제거 할 경우 일부 행을 제거 일부 행의 경우 V4 > 82800

코드는 매우 간단해야합니다. 행렬의 하위 집합을 잡아두기 만하면됩니다.

관련 문제