2016-11-04 75 views
1

對於數據如下,我想根據如下的條件,使在SAS EG不同地塊..在SAS EG如何繪製多行(重疊地塊)

  1. X &的Y線圖當POS =「L」(即,線圖對1月1日的POS「L」和在它上面的1月31日的另一條線)X &的

  2. 類似地,不同的線標繪Y其中POS =「R」

這裏是數據...

MeasNo X Y Date Ano POS 

1 10 2 01JAN16 1 L 
2 11 4 01JAN16 1 L 
3 12 3 01JAN16 1 L 
4 13 5 01JAN16 1 L 
5 14 6 01JAN16 1 L 
6 15 3 01JAN16 1 L 
7 16 4 01JAN16 1 L 
8 17 7 01JAN16 1 L 
9 18 8 01JAN16 1 L 
10 19 4 01JAN16 1 L 
11 20 6 01JAN16 1 L 
12 21 3 01JAN16 1 L 
13 22 2 01JAN16 1 L 
14 23 7 01JAN16 1 L 
15 24 9 01JAN16 1 L 
16 25 6 01JAN16 1 L 
17 26 5 01JAN16 1 L  
18 27 4 01JAN16 1 L 
19 28 3 01JAN16 1 L 
20 29 5 01JAN16 1 L 
21 30 4 01JAN16 1 L 
22 31 7 01JAN16 1 L 
23 32 8 01JAN16 1 L 
24 33 7 01JAN16 1 L 
25 34 9 01JAN16 1 L 
26 35 8 01JAN16 1 L 
27 36 6 01JAN16 1 L 
28 37 7 01JAN16 1 L 
29 38 5 01JAN16 1 L 
30 39 4 01JAN16 1 L 
1 10 4 01JAN16 1 R 
2 11 6 01JAN16 1 R 
3 12 5 01JAN16 1 R 
4 13 7 01JAN16 1 R 
5 14 8 01JAN16 1 R 
6 15 5 01JAN16 1 R 
7 16 6 01JAN16 1 R 
8 17 9 01JAN16 1 R 
9 18 10 01JAN16 1 R 
10 19 6 01JAN16 1 R 
11 20 8 01JAN16 1 R 
12 21 5 01JAN16 1 R 
13 22 4 01JAN16 1 R 
14 23 9 01JAN16 1 R 
15 24 11 01JAN16 1 R 
16 25 8 01JAN16 1 R 
17 26 7 01JAN16 1 R 
18 27 6 01JAN16 1 R 
19 28 5 01JAN16 1 R 
20 29 7 01JAN16 1 R 
21 30 6 01JAN16 1 R 
22 31 9 01JAN16 1 R 
23 32 10 01JAN16 1 R 
24 33 9 01JAN16 1 R 
25 34 11 01JAN16 1 R 
26 35 10 01JAN16 1 R 
27 36 8 01JAN16 1 R 
28 37 9 01JAN16 1 R 
29 38 7 01JAN16 1 R 
30 39 6 01JAN16 1 R 
1 10 1 31JAN16 1 L 
2 11 3 31JAN16 1 L 
3 12 2 31JAN16 1 L 
4 13 4 31JAN16 1 L 
5 14 5 31JAN16 1 L 
6 15 2 31JAN16 1 L 
7 16 3 31JAN16 1 L 
8 17 6 31JAN16 1 L 
9 18 7 31JAN16 1 L 
10 19 3 31JAN16 1 L 
11 20 5 31JAN16 1 L 
12 21 2 31JAN16 1 L 
13 22 1 31JAN16 1 L 
14 23 6 31JAN16 1 L 
15 24 8 31JAN16 1 L 
16 25 5 31JAN16 1 L 
17 26 4 31JAN16 1 L 
18 27 3 31JAN16 1 L 
19 28 2 31JAN16 1 L 
20 29 4 31JAN16 1 L 
21 30 3 31JAN16 1 L 
22 31 6 31JAN16 1 L 
23 32 7 31JAN16 1 L 
24 33 6 31JAN16 1 L 
25 34 8 31JAN16 1 L 
26 35 7 31JAN16 1 L 
27 36 5 31JAN16 1 L 
28 37 6 31JAN16 1 L 
29 38 4 31JAN16 1 L 
30 39 3 31JAN16 1 L 
1 10 4 31JAN16 1 R 
2 11 6 31JAN16 1 R 
3 12 5 31JAN16 1 R 
4 13 7 31JAN16 1 R 
5 14 8 31JAN16 1 R 
6 15 5 31JAN16 1 R 
7 16 6 31JAN16 1 R 
8 17 9 31JAN16 1 R 
9 18 10 31JAN16 1 R 
10 19 6 31JAN16 1 R 
11 20 8 31JAN16 1 R 
12 21 5 31JAN16 1 R 
13 22 4 31JAN16 1 R 
14 23 9 31JAN16 1 R 
15 24 11 31JAN16 1 R 
16 25 8 31JAN16 1 R 
17 26 7 31JAN16 1 R 
18 27 6 31JAN16 1 R 
19 28 5 31JAN16 1 R 
20 29 7 31JAN16 1 R 
21 30 6 31JAN16 1 R 
22 31 9 31JAN16 1 R 
23 32 10 31JAN16 1 R 
24 33 9 31JAN16 1 R 
25 34 11 31JAN16 1 R 
26 35 10 31JAN16 1 R 
27 36 8 31JAN16 1 R 
28 37 9 31JAN16 1 R 
29 38 7 31JAN16 1 R 
30 39 6 31JAN16 1 R 

我想是這樣的,但我沒有得到不同的地塊。

附上樣本結果(從excel獲得)。

enter image description here

data have; 
infile cards expandtabs truncover; 
input MeasNo X Y Date : date9. Ano POS $; 
cards; 
MeasNo X Y Date Ano POS 
1 10 2 01JAN16 1 L 
2 11 4 01JAN16 1 L 
3 12 3 01JAN16 1 L 
4 13 5 01JAN16 1 L 
5 14 6 01JAN16 1 L 
6 15 3 01JAN16 1 L 
7 16 4 01JAN16 1 L 
8 17 7 01JAN16 1 L 
9 18 8 01JAN16 1 L 
10 19 4 01JAN16 1 L 
11 20 6 01JAN16 1 L 
12 21 3 01JAN16 1 L 
13 22 2 01JAN16 1 L 
14 23 7 01JAN16 1 L 
15 24 9 01JAN16 1 L 
16 25 6 01JAN16 1 L 
17 26 5 01JAN16 1 L  
18 27 4 01JAN16 1 L 
19 28 3 01JAN16 1 L 
20 29 5 01JAN16 1 L 
21 30 4 01JAN16 1 L 
22 31 7 01JAN16 1 L 
23 32 8 01JAN16 1 L 
24 33 7 01JAN16 1 L 
25 34 9 01JAN16 1 L 
26 35 8 01JAN16 1 L 
27 36 6 01JAN16 1 L 
28 37 7 01JAN16 1 L 
29 38 5 01JAN16 1 L 
30 39 4 01JAN16 1 L 
1 10 4 01JAN16 1 R 
2 11 6 01JAN16 1 R 
3 12 5 01JAN16 1 R 
4 13 7 01JAN16 1 R 
5 14 8 01JAN16 1 R 
6 15 5 01JAN16 1 R 
7 16 6 01JAN16 1 R 
8 17 9 01JAN16 1 R 
9 18 10 01JAN16 1 R 
10 19 6 01JAN16 1 R 
11 20 8 01JAN16 1 R 
12 21 5 01JAN16 1 R 
13 22 4 01JAN16 1 R 
14 23 9 01JAN16 1 R 
15 24 11 01JAN16 1 R 
16 25 8 01JAN16 1 R 
17 26 7 01JAN16 1 R 
18 27 6 01JAN16 1 R 
19 28 5 01JAN16 1 R 
20 29 7 01JAN16 1 R 
21 30 6 01JAN16 1 R 
22 31 9 01JAN16 1 R 
23 32 10 01JAN16 1 R 
24 33 9 01JAN16 1 R 
25 34 11 01JAN16 1 R 
26 35 10 01JAN16 1 R 
27 36 8 01JAN16 1 R 
28 37 9 01JAN16 1 R 
29 38 7 01JAN16 1 R 
30 39 6 01JAN16 1 R 
1 10 1 31JAN16 1 L 
2 11 3 31JAN16 1 L 
3 12 2 31JAN16 1 L 
4 13 4 31JAN16 1 L 
5 14 5 31JAN16 1 L 
6 15 2 31JAN16 1 L 
7 16 3 31JAN16 1 L 
8 17 6 31JAN16 1 L 
9 18 7 31JAN16 1 L 
10 19 3 31JAN16 1 L 
11 20 5 31JAN16 1 L 
12 21 2 31JAN16 1 L 
13 22 1 31JAN16 1 L 
14 23 6 31JAN16 1 L 
15 24 8 31JAN16 1 L 
16 25 5 31JAN16 1 L 
17 26 4 31JAN16 1 L 
18 27 3 31JAN16 1 L 
19 28 2 31JAN16 1 L 
20 29 4 31JAN16 1 L 
21 30 3 31JAN16 1 L 
22 31 6 31JAN16 1 L 
23 32 7 31JAN16 1 L 
24 33 6 31JAN16 1 L 
25 34 8 31JAN16 1 L 
26 35 7 31JAN16 1 L 
27 36 5 31JAN16 1 L 
28 37 6 31JAN16 1 L 
29 38 4 31JAN16 1 L 
30 39 3 31JAN16 1 L 
1 10 4 31JAN16 1 R 
2 11 6 31JAN16 1 R 
3 12 5 31JAN16 1 R 
4 13 7 31JAN16 1 R 
5 14 8 31JAN16 1 R 
6 15 5 31JAN16 1 R 
7 16 6 31JAN16 1 R 
8 17 9 31JAN16 1 R 
9 18 10 31JAN16 1 R 
10 19 6 31JAN16 1 R 
11 20 8 31JAN16 1 R 
12 21 5 31JAN16 1 R 
13 22 4 31JAN16 1 R 
14 23 9 31JAN16 1 R 
15 24 11 31JAN16 1 R 
16 25 8 31JAN16 1 R 
17 26 7 31JAN16 1 R 
18 27 6 31JAN16 1 R 
19 28 5 31JAN16 1 R 
20 29 7 31JAN16 1 R 
21 30 6 31JAN16 1 R 
22 31 9 31JAN16 1 R 
23 32 10 31JAN16 1 R 
24 33 9 31JAN16 1 R 
25 34 11 31JAN16 1 R 
26 35 10 31JAN16 1 R 
27 36 8 31JAN16 1 R 
28 37 9 31JAN16 1 R 
29 38 7 31JAN16 1 R 
30 39 6 31JAN16 1 R 

; 
run; 
data want; 
merge have(where=(date='01JAN16'd) rename=(x=x1 y=y1)) 
    have(where=(date='31JAN16'd) rename=(x=x2 y=y2)); 
proc sgplot data=want nocycleattrs; 
series x=x1 y=y1/group=pos; 
series x=x2 y=y2/group=pos; 
run; 

任何建議嗎?

+0

也許我錯過了一些東西,但不應該得到4行?每個L/R和每個日期一個? – Reeza

回答

2

您有GROUP向後,或多或少。 GROUP告訴它做兩行。使用BY,而不是用x1/x2做什麼,也可以得到兩個圖。

proc sort data=have; 
by pos date; 
run; 

proc sgplot data=have nocycleattrs; 
by pos; 
series x=x y=y/group=date; 
format date date9.; 
run; 

這是做你想做的嗎? (POS = R是正確的,我相信,但你的數據在兩個日期看起來是完全相同的,所以它完全暴露在外; POS = L看起來像你所要求的。)

+0

讓我檢查。是的,這個數據只是我現在正在處理的將近6億行數據的模擬數據。 – ZeekDSA

0

因爲我讀了你的要求, ,我覺得要修改的答案有點回答您的查詢:

proc sort data=have; 
by pos date; 
run; 

proc sgplot data=have nocycleattrs; 
by pos; 
series X=X1 Y=Y1/group=date; 
series X=X2 Y=Y2/group=date; 
format date date9.; 
run; 

另外,

proc sgpanel data=have; 
panelby pos; 
series x=x y=y/group=date break; 
run; 

同時檢查答案,看看這些幫助你。

+0

沒有理由做X1/X2拆分,BY處理完全正確地處理。如果您有理由認爲它沒有,請解決該問題。 – Joe

+0

@Joe我猜...這會工作......'proc sgpanel data = have; panelby pos;系列x = x y = y /組=日期中斷;運行;' –