2010-06-04 4 views
1

2M이 넘는 테이블이 있습니다. 저는 한 변수의 백분위 수와 관측 수의 백분위 수 (예 : 로렌츠 곡선)에만 관심이 있습니다.서브 세트의 nonconsecituve 관측치가

  • 어떻게하면 작은 데이터 프레임을 만들 수 있습니까? 관측 번호 1,101,201,301, ..., 최후 또는 관찰에 해당하는 관찰. 총 관측 수의 1,2,3, ..., 100 백분위 수?

  • 백분율 기준으로 축 (인덱스, 변수)의 로렌츠 커브를 빠르게 얻을 수있는 방법이 있습니까? 지금은 인덱스와 변수 백분위 수에 변수를 추가 한 다음 서로에 대해 그려보기를 생각하고있었습니다.

감사합니다,

로베르토 첫 번째 질문에 관해서는

+2

이 패키지는 도움이 될 수도 있습니다 http://cran.r-project.org/web/packages/ineq – kohske

답변

1

, 나는 1,2,3에 따라 dataframe의 하위 집합을 얻으려면, quantile 기능을 사용, ... 하는 '큰'데이터 셋 (말) 제 칼럼의 관찰 (1 열에 정수 값을 가정)

df[df[,1] %in% round(quantile(df[,1], probs = c(1:100)/100)),] 
+0

로베르토가 요청한 내용에 동의합니다.하지만 유용한 하위 집합이 아닌 것은 확실합니다. 원본과 매우 다른 속성을 가질 수 있습니다. 일부 백분위 수와 일치하고 다른 행과 일치하는 행이 여러 개있을 수 있습니다. –

+0

조지, 나는 다음을 시도했다. (행 번호의 분위수에 관심이있다.) 'df_small <- 부분 집합 (df, row (df) % round (nrow (df)/100 * 1 : 100) , 0))' '오류 : (첨자) 논리 첨자가 너무 깁니다 .' 그리고 왜 이런지 알 수 없습니다. 아이디어? Richie : 당신의 관찰은 맞지만 100 개의 데이터 포인트를 가진 요약 파레토 플롯이 필요합니다. 그래서 이것은 괜찮을 것입니다. – Roberto

+0

@Roberto 나는 df_small <- df [round (nrow (df)/100 * (1 : 100), 0),] –

1

총수의 100 퍼센트

dfr <- data.frame(x = 1:1000, y = runif(1000)) 

당신은 분위수/백분위 수를 얻을 수 quantile를 사용하여 언급 gd047으로

dfr[sample(nrow(dfr), 20),] 

dfr[!(seq_len(nrow(dfr)) %% 50),] 

또는 임의의 부분 집합 정기적으로 간격 행의 하위 집합을 취할 수 있습니다.

관련 문제