2015-02-02 2 views
0

최근 SAS에서 그룹화에 대해 question을 요청했습니다. 그 질문에 그리기, 그리고 같은 데이터 세트를 사용하여, 나는 상자 음모를 꾸미기 위해 고심하고있다.연도가 연도별로 그룹화 된 박스도

데이터는 다음과 같다 : 실제로 설정

Date Close Volume 
12/31/2014 222.41 2402097 
12/30/2014 222.23 2903242 
12/29/2014 225.71 2811828 
12/26/2014 227.82 3327016 
12/24/2014 222.26 1333518 
12/23/2014 220.97 4513321 
12/22/2014 222.6 4806917 
12/19/2014 219.29 6910461 
12/18/2014 218.26 7483349 
12/17/2014 205.82 7367834 
12/16/2014 197.81 8426105 
12/15/2014 204.04 5218252 
12/12/2014 207 7173782 

이 데이터는 두 개의 전체 년 2013 커버 - 나는 매년 변수 (닫기 및 볼륨)에 대한 상자 그림을 좋아하는 것 (14).

proc boxplot data=tsla; 
class Date; 
format Date year.; 
    plot Close*Date; 
run; 

하지만 그 오류 "

ERROR 180-322: Statement is not valid or it is used out of proper order. 
162 format Date year.; 
163  plot Close*Date; 
164 run; 

"

다음 오른쪽 위해 무엇을 반환 여기

내가 시도 무엇인가?

SAS가 총 4 개의 박스 플롯을 제공하도록하려면 어떻게해야합니까? 2 변수 (닫기 및 볼륨) 및 2 년 (2013 - 14)?

+0

'plot' 문을 끝내기 위해'skeletal' 다음에 세미콜론이 필요하다고 생각한다. – DWal

+0

감사합니다. 세미 콜론이 추가 되었으나 오류가 발생했습니다. 어떤 아이디어? –

답변

1

proc boxplot에는 class 문이 없습니다.

먼저 데이터 단계를 사용하여 "연도"변수를 추가하십시오. 연도 별

data tsla2; 
    set tsla; 
    year=year(date); 
run; 

정렬 :

proc sort data=tsla2; 
    by year; 
run; 

사용 proc boxplot에서 by 문 :

proc boxplot data=tsla2; 
    by year; 
    plot close*year; 
    plot volume*year; 
run; 

당신은 모든 년 각 변수에 대해 함께 그려하려는 경우, 정렬 할 필요가 없습니다 또는 by 문을 사용하십시오. 그냥해라.

proc boxplot data=tsla2; 
    plot close*year; 
    plot volume*year; 
run; 
+0

"연도 = 연도 (날짜)를 데이터 단계에 추가 할 때, 정확히 무엇을 의미합니까? SAS gui를 사용하여 가져 오기 기능을 사용하여 데이터를 가져 왔습니다.이 단계를 다음과 같이 추가 할 수 있습니까? 년 = 연도 (날짜); \t plot 닫기 * 날짜 : 실행; –

+0

이것은 훌륭합니다. 나는 그것을 이해할 수 있었을 것이라고 생각하지 않습니다. 감사합니다 다시 –

+0

데이터 단계가 필요하지 않습니다. 'class' 문을'by '로 바꾸면 원래 코드가 작동하지만 데이터는 여전히 필요합니다. 날짜별로 미리 정렬 됨. – Longfish