2012-05-18 2 views
0

I는 다음과 같이 보이는 dataframe 있습니다산점도로 한 줄에 두 개의 컬럼의 최소 및 최대를 플롯하는 방법

| id | length_bgn | length_end | 
-------------------------------- 
| 1 | 209  | 215  | 
| 2 | 324  | 125  | 
| 3 | 167  | 156  | 
| .. | ...  | ...  | 
-------------------------------- 

내가 길이의 최소 산점도를하고 싶습니다 (행 당을) 및 Y 축의 최대 행당 최대 값입니다. 나는 시도했다 :

그러나 이것은 양쪽 열의 최대 값에 대해 두 열의 최소 한 점을 그렸다. 잘못된 기능을 사용하고 있습니까? 또는 데이터 프레임을 어떻게 든 조작하는 것이 더 낫습니까? 어떤 평범함이라도 변명해라, 나는 여전히 R과 ggplot2에 대해 아주 새롭다.

도움을 주시면 감사하겠습니다.

편집 : 위의 코드를 사용하여 예 줄거리 : gauden의 솔루션 @

example scatterplot

+1

당신은 당신의 설명이 훨씬 명확하게해야 할 것입니다. 나는 여러분의 df에서 행당 3 개의 값만을보고, 그 중 하나만 length_bgn입니다. 너는 무엇을 끝내고 있니? – joran

+0

죄송합니다. 예를 들어 id == 2, x = 125 및 y = 324와 같이 음모를 꾸미려고합니다. 나는. 최대 행 당 최대 최소 행 당 싶습니다. 나는 그것이 더 명확하다라고 생각하지만, 그렇지 않으면 내가 알기를 바란다. – Harry

+0

아, 이제 알겠습니다. 컬럼이 당신이 원하는 변수에 대응하도록 df를 재정렬해야 할 것입니다. 즉, 각 행의 최소값은 모두 하나의 열에 있어야합니다. 나는'apply'를 두 번 사용하여 조사 할 것입니다. – joran

답변

4

편집

library("ggplot2") 

df <- read.table(text = " id length_bgn length_end 
     1  209   215  
2  324   125  
3  167   156  ", header=TRUE) 

df$x <- apply(df[,c(2,3)], 1, min) 
df$y <- apply(df[,c(2,3)], 1, max) 


qplot(x, y, data=df) 
3

은 (플로팅 전에 처리를 할) 좋은,하지만 만약 정말 ggplot도 그 일을 할 수 있기를 바랍니다. [제공 @gauden df를 사용하여.]

qplot(pmin(length_bgn, length_end), pmax(length_bgn, length_end), data=df) 

enter image description here