Pengenalan SAS

A. Pengenalan Dasar SAS

0. Akses Data di Library

proc print data=SASHELP.CARS;
   title 'Data SAS di Library SASHELP berisi Data CARS';
run;

1. Instream Data, Penyimpanan Sementara

data data0;
input a b c;
cards;
1 2 3
4 5 6
7 8 9
;
proc print data=data0;
run;
data data1;
input a$ b c;
cards;
s1 2 3
s4 5 6
s7 8 9
;
proc print data=data1;
run;

2. External Data, penyimpanan Sementara

Isi File : data02.txt

s1 Bambang      3
s2 Gunawan      6
s3 Setyonugroho 9
data data2;
infile "~/my_shared_file_links/u49741401/data02.txt";
input pend$ nama$ 4-15 nilai;
cards;
proc print data=data2;
run;

3. Instream Data, Penyimpanan Permanen

libname STA261 "/home/u49741401/sasuser.v94";
data STA261.data3;
input a b c;
cards;
1 2 3
4 5 6
7 8 9
;
proc print data=STA261.data3;
run;

4. External Data, Penyimpanan Permanen

libname STA261 "/home/u49741401/sasuser.v94";
data STA261.data4;
infile "~/my_shared_file_links/u49741401/data02.txt";
input pend$ nama$ 4-15 nilai;
cards;
proc print data=STA261.data4;
run;

5. Iterasi

Peubah x : bilangan 0 sampai 1 dengan selisih 0.05
Peubah y : xj, dengan j merupakan indeks dari x

data data5 (drop=j);
j=0;
    do x=0 to 1 by 0.05;
        j=j+1;
        y=x**j;
    output;
end;
run;
proc print data=data5;
run;

proc contents data=data5;
run;

6. If Else, Length and Drop

Peubah x : bilangan 1 sampai 20
Peubah Ket : keterangan “ganjil” atau “genap” dari x

data data6;
do x = 1 to 20;
    y = mod(x,2);
    if y = 0 then Ket = "Genap";
    else Ket = "Ganjil";
    output;
end;
proc print data=data6;
run;
data data6;
length ket $ 6;
do x = 1 to 20;
    y = mod(x,2);
    if y = 0 then ket = "Genap";
    else ket = "Ganjil";
    output;
end;
Drop y;
run;
proc print data=data6;
run;

7. Keep

Peubah x : bilangan 1 sampai 10 Masih pada tahapan data, carilah rata-rata dari x dengan nama rataan Tampilkan hanya peubah rataan saja

data data7 (keep=rataan);
x=0;
n=0;
do y=1 to 10;
    x=x+y;
    n=n+1;
end;
rataan = x/n;
run;
proc print data=data7;
run;

8 Konstanta

Peubah x : bilangan 1 sampai 20
Peubah y : 𝑦 =sin⁡(𝑥×𝜋)+cos⁡(𝑥×𝜋)

data data8 (drop=pi);
pi = constant("pi");
do x=1 to 20;
    y=sin(x*pi)+cos(x*pi);
    output;
end;
run;
proc print data=data8;
run;

B. Proc SAS/BASE

PROC KETERANGAN
PROC PRINT Mencetak observasi pada data SAS.
PROC CONTENTS Menampilkan isi dari data SAS.
PROC IMPORT Membaca data eksternal dan menyalinnya ke data SAS.
PROC FORMAT Merubah/ memformat observasi dari variabel
PROC SORT Mengurutkan observasi data SAS.
PROC MEANS Ringkasan data (statistika deskriptif)
PROC UNIVARIATE Statistika deskriptif (momen), histogram, QQplot…
PROC FREQ Tabel frekuensi dan kontingensi
PROC PLOT Membuat plot dari observasi 2 variabel
PROC CHART Membuat bar chart, pie chart, star chart

PROC SORT

Tahapan prosedur untuk mengurutkan amatan dalam variabel (beberapa variabel)

Bentuk Umum

proc sort data= … out= … ;
by descending variable;
run;

Contoh :

Urutkanlah amatan data berikut ini berdasarkan variabel nama dan mobil masing-masing secara descending

Nama ID MOBIL
Joko 7 Avanza
Budi 11 Civic
Bambang 3 Xenia
Joko 7 Jazz
data data9;
input Nama$ ID Mobil$;
cards;
Joko 7 Avanza
Budi 11 Civic
Bambang 3 Xenia
Joko 7 Jazz
;
proc sort data=data9 out=data9sort;
by descending nama descending mobil;
run;
proc print data=data9; run;
proc print data=data9sort; run;

PROC FREQ

Tahapan prosedur untuk menghitung dan membuat tabel kontingensi

Bentuk Umum

PROC FREQ < options > ; 
  BY variables ; 
  EXACT statistic-options < / computation-options > ; 
  OUTPUT < OUT=SAS-data-set > options ; 
  TABLES requests < / options > ; 
  TEST options ; 
  WEIGHT variable < / option > ;

Contoh :

Buatlah tabel kontingensi dari data di bawah ini, dengan peubah pre untuk bagian baris dan peubah post untuk bagian kolom, serta dengan isinya berupa peubah hasil

Pre Post Hasil
Yes Yes 30
Yes No 10
No Yes 40
No No 20
data data10;
input pre$ post$ hasil;
cards;
Yes Yes 30
Yes No 10
No Yes 40
No No 20
;
proc freq data=data10;
tables pre*post;  # Frekuensi Amatan Pre dan Post
run;

proc freq data=data10;
tables pre*post/ norow nocol nopercent;  # Frekuensi Amatan Pre, Post, Hasil
weight hasil;
run;

Referensi

Rahardiantoro, S. 2019. Tahapan Data dan Proc. Komputasi Statistika (Lectures Note). Bogor: IPB University