2013-05-14 5 views
2

data$form에는 170 개의 고유 한 값 (1에서 ~ 800까지의 숫자)이 포함되어 있습니다. 일부 값 (예 : 반경/반경 10)을 병합하고 싶습니다. 플롯에서요소 열의 병합 값

colors = rainbow(length(unique(data$form))) 

더 나은 시각적 결과를 제공

내가 사용하기 위해이 작업을 수행해야합니다.

도움을 주셔서 감사합니다.

+0

병합 할 때 특정 요소를 단일 값으로 결합한다는 의미입니까? 엔드 포인트 또는 센터를 어떻게 결정합니까? –

+0

@ RicardoSaporta, Yes Ricardo, 1과 10 사이에 차이가 없으므로 값을 결합하고 싶습니다. 학생도 0에서 800까지의 범위를 가지지 만 1에서 20까지 크기를 조정하고 싶습니다. –

답변

3

%/%을 사용하여 그룹화하고 mean을 결합하여 normalize을 스케일 할 수 있습니다.

# if you want specifically 20 groups: 
groups <- sort(form) %/% (800/20) 

x <- c(by(sort(form), groups, mean)) 

x <- normalize(x, TRUE) * 19 + 1 

     0   1   2   3   4 
1.000000 1.971781 2.957476 4.103704 4.948560 
     5   6   7   8   9 
5.950617 7.175309 7.996914 8.953086 9.952263 
     10  11  12  13  14 
10.800705 11.9.888889 13.772291 14.888889 
     15  16  17  18  19 
15.927984 16.864198 17.918519 18.860082 20.000000 
3

cut도 사용할 수 있습니다. 당신이 인수 labels=FALSE를 사용하는 경우, 당신은 정수 값을 얻을 : 사이드 노트에

form <- runif(170, min=1,max=800) 
> cut(form, breaks=20) 
[1] (518,558] (280,320] (240,280] (121,160] (757,797] 
[6] (160,200] (320,359] (598,638] (80.8,121] (359,399] 
[7] (121,160] (200,240] ... 
20 Levels: (1.18,41] (41,80.8] (80.8,121] (121,160] (160,200] (200,240] (240,280] (280,320] (320,359] (359,399] (399,439] ... (757,797] 

> cut(form, breaks=20, labels=FALSE) 
[1] 14 8 7 4 20 5 9 16 3 10 4 6 5 18 18 6 2 12 
[19] 2 19 13 11 13 11 14 12 17 5 ... 

을, 나는 그것이 데이터, 참조를 읽는 왜곡대로, 무지개 색으로 플롯을 다시 고려할 Rainbow Color Map (Still) Considered Harmful.