SAS 데이터 세트로 저장하려는 행렬이 있는 경우 이를 수행하기 위해 CREATE 문을 사용합니다.
만약에 기존 SAS 데이터 세트에 데이터를 추가하려는 경우 EDIT 문을 사용합니다.
SAS에는 쓰는 데이터에 따라 2 가지 CREATE 문 이 있습니다.
①
CREATE SAS-data-set <VAR {operand}>;
REATE 문을 실행하고 생성할 새 SAS 데이터 세트를 지정합니다.
벡터를 작성하는 경우 SAS 데이터 세트에 대해 VAR 옵션을 사용하고 벡터의 이름을 행 벡터로 지정합니다.
이 옵션은 벡터의 이름이 SAS 데이터 세트 변수 이름으로 사용된다는 것입니다.
VAR 옵션이 사용되지 않고 범위에 있는 모든 SAS/IML 행렬에 대해 변수가 생성되고 행렬 이름이 생성됩니다. 새 데이터 세트에서 변수 이름으로 사용됩니다.
데이터 세트를 생성하는 데 사용된 각 행렬은 데이터 세트의 단일 변수에 해당합니다.
여러 행과 여러 열이 데이터 세트 변수로 사용되며 그 내용은 다음의 데이터 세트에 기록됩니다.
②
CREATE SAS-data-set FROM matrix-name
<[ROWNAME=row-name
COLNAME=column-name]>;
CREATE 문에 FROM 키워드가 사용되는 경우 소스 행렬의 각 열은 다음과 같이 처리됩니다.
새로 생성된 데이터 집합의 고유 변수입니다. COLNAME 옵션을 사용하는 것이 좋습니다.
CREATE 문에 SAS 데이터 세트 변수 이름을 직접 설정할 수 있습니다.
이렇게 하면 데이터 단계를 사용하여 이름을 변경할 필요가 없습니다. 데이터 세트에 행렬을 추가하면 기본 이름이 col1, col2, col3 등이 됩니다.
CREATE 문은 입력 또는 출력에 대해서만 데이터 세트를 엽니다.
APPEND 문에는 세 가지 다른 형식이 있지만 다음을 수행하는 CREATE 문에 따라 다릅니다.
아래 세 가지 다른 형식의 구문을 살펴보겠습니다.
IML 행렬을 사용하여 SAS 데이터 세트를 생성하려면 CREATE, APPEND 및 CLOSE 문을 사용합니다.
①
APPEND;
# Ex
create data1 var{name age};
append;
close data1;
위의 예에서는 data1이라는 새 데이터 세트를 만들고 해당 데이터 세트에 두 개의 벡터를 씁니다.
VAR 옵션, 이름 및 나이. 그런 다음 APPEND를 사용하여 해당 데이터를 추가하도록 SAS에 명시적으로 설정해야 합니다.
close 문을 사용하여 마지막으로 열린 데이터 세트를 닫습니다
②
APPEND VAR matrix-list;
#Ex
create data2;
append var{name age};
close data2;
VAR 옵션은 CREATE 문 또는 APPEND 문에서 사용할 수 있지만 둘 다에서 사용할 수는 없습니다. VAR
옵션은 SAS 데이터 세트에 전달할 벡터를 지정합니다. VAR 옵션은 SAS에 행렬을 전달하는 데 사용되지 않습니다.
③
APPEND FROM append_matrix <[ROWNAME=row-name]>;
#Ex
create data3 from matrix3[colname={week1, week2, week3, week4}];
append from matrix3;
close data3;
세 번째 예에서는 matrix3이라는 행렬에서 data3이라는 새 데이터 세트를 생성합니다. 변경하려면
CREATE 문에서 바로 SAS 데이터 세트 변수 이름은 아래와 같이 COLNAME 옵션을 사용합니다.
데이터 세트가 이미 있는 경우 EDIT 문으로 데이터 세트를 열고 데이터를 추가한 다음 닫을 수 있습니다.
edit data2;
append from matrix4;
close data2;
SAS 데이터 세트 data2를 편집하고 APPEND FROM 문을 사용하여 기존 SAS 데이터 세트 아래에 matrix4 행렬을 쌓습니다. 매트릭스가 기존 SAS 데이터 세트와 동일한 수의 열을 갖습니다.
위에서는 SAS 데이터 세트에 행렬을 넣는 방법을 알아보았습니다.
이제는 SAS 데이터 세트에 대한 프로시저를 실행하는 방법을 알아보려 합니다.
IML을 종료하면 저장되지 않은 모든 작업영역이 삭제됩니다. IML에서 직접 SAS 프로시저를 호출하는 경우의 몇 가지 이점입니다.
IML을 종료하지 않고 SAS 프로시저를 호출할 수 있습니다.
SAS 절차는 IML 모듈 내에서 사용할 수 있습니다.
매트릭스 값은 SAS 절차의 파라미터로 사용할 수 있습니다.
조건부 또는 루프 내에서 SAS 절차를 실행할 수 있습니다.
IML에서 SAS 절차를 호출하기 위해 SUMBIT 및 END SUBMIT 문을 사용합니다.
SUBMIT 문은 IML에 있는 행렬들을 전달할 수 있다.
SUBMIT <parameters> / <options>;
statements;
ENDSUBMIT;
SUMIT 문과 ENDSUMIT 문 사이의 문을 SUMIT 블록이라고 합니다.
매개 변수 값은 값이 언어로 대체되는 하나 이상의 옵션 행렬을 지정합니다.
제출 블록에 있는 문을 표시합니다. SUMBIT 블록에는 다음이 포함될 수 있습니다.
SUBMIT 문과 ENDSUBMIT 문 사이의 문을 SUBMIT 블록이라고 합니다.
매개변수 값은 값이 언어로 대체되는 하나 이상의 옵션 행렬을 지정합니다.
SUBMIT 블록의 문. SUBMIT 블록에는 다음이 포함될 수 있습니다.
⁃ SAS 절차
⁃ 데이터 단계
⁃ ODS 명령어
⁃ 기타 SAS 진술
SUBMIT 블록은 ENDSUBMIT 후에만 실행됩니다.
R에서 데이터를 생성할 때 PLOT 함수를 사용하여 플롯할 수 있습니다.
SAS/IML에서는 데이터를 직접 플로팅할 수 없습니다.
해당 행렬을 SAS 데이터 세트로 내보낸 다음 SGPLOT 프로시저를 실행하여 그래픽을 생성해야 합니다.
SAS/IML은 통계 그래픽을 생성할 수 있는 서브루틴을 제공합니다.
PROC SGPLOT을 호출하기 위한 SUBMIT 및 ENDBUSMIT 문은 아래와 같습니다.
BAR call
BOX call
HISTOGRAM call
SERIES call
HEATMAPCONT call
HEATMAPDISC call
이것은 새 SAS 데이터 세트를 생성한 다음 해당 데이터 세트를 SGPLOT 프로시저에 전달합니다. 당
# SCATTER Subroutine
MPG_City를 x축 변수로 할당하고 MPG_Highway를 y축 변수로 할당합니다.
우리는 또한 서브루틴 레이블 및 제목 옵션을 전달합니다.
SGPLOT 절차에서 옵션을 사용해서 SAS 데이터 세트를 생성한 다음 SGPLOT을 사용하여 아래에 표시된 그래픽을 생성합니다.
title "Scatter Plot with Default Properties";
call Scatter(MPG_City, MPG_Highway)
label={"MPG_City" "MPG_Highway"};
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!