Penyiapan Data SAS
A. DATA
1. IRIS
Data yang digunakan adalah data Iris dari RA Fisher (1936), dengan 150 baris data dan 5 kolom.
Lima Kolom ini adalah :
1. sepal length in cm
2. sepal width in cm
3. petal length in cm
4. petal width in cm
5. class:
– Iris Setosa
– Iris Versicolor
– Iris Virginica
Iris dan Varietasnya
B. Proses Memasukkan Data ke SAS
1. External (OutStream)
Pada proses ini, data berada di luar Program SAS. Untuk proses
memasukkan data secara External ini, Anda dipersilahkan :
1. Membuka link github berikut ini : iris
2. Klik Kanan, Save As iris.txt di Komputer Anda.
3. Upload pada SAS Studio Anda, sehingga File tersebut bisa Anda Akses
melalui link semacam ini
/home/User_ID_Anda/sasuser.v94/iris.txt
Untuk memasukan Data iris ke System secara OutStream,
Anda bisa menggunakan syntax semacam ini.
DATA iris_outstream;
INFILE "/home/User_ID_Anda/sasuser.v94/iris.txt";
INPUT sepal_length sepal_width petal_length petal_width species$;
CARDS;Ingat untuk species Anda harus menggunakan tipe
$, karena species merupakan karakter. Anda
akan mendapatkan hasil kurang lebih seperti ini, dengan 150 baris ke
bawah. (Catatan : pada modul ini hanya ditampilkan 6 baris).
| sepal_length | sepal_width | petal_length | petal_width | species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
2. Instream
Pada proses InStream ini, data berada di dalam program
SAS.
DATA iris_instream;
INPUT sepal_length sepal_width petal_length petal_width species$;
CARDS;
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa
4.6 3.4 1.4 0.3 setosa
5.0 3.4 1.5 0.2 setosa
4.4 2.9 1.4 0.2 setosa
4.9 3.1 1.5 0.1 setosa
5.4 3.7 1.5 0.2 setosa
4.8 3.4 1.6 0.2 setosa
4.8 3.0 1.4 0.1 setosa
4.3 3.0 1.1 0.1 setosa
5.8 4.0 1.2 0.2 setosa
5.7 4.4 1.5 0.4 setosa
5.4 3.9 1.3 0.4 setosa
5.1 3.5 1.4 0.3 setosa
5.7 3.8 1.7 0.3 setosa
5.1 3.8 1.5 0.3 setosa
5.4 3.4 1.7 0.2 setosa
5.1 3.7 1.5 0.4 setosa
4.6 3.6 1.0 0.2 setosa
5.1 3.3 1.7 0.5 setosa
4.8 3.4 1.9 0.2 setosa
5.0 3.0 1.6 0.2 setosa
5.0 3.4 1.6 0.4 setosa
5.2 3.5 1.5 0.2 setosa
5.2 3.4 1.4 0.2 setosa
4.7 3.2 1.6 0.2 setosa
4.8 3.1 1.6 0.2 setosa
5.4 3.4 1.5 0.4 setosa
5.2 4.1 1.5 0.1 setosa
5.5 4.2 1.4 0.2 setosa
4.9 3.1 1.5 0.1 setosa
5.0 3.2 1.2 0.2 setosa
5.5 3.5 1.3 0.2 setosa
4.9 3.1 1.5 0.1 setosa
4.4 3.0 1.3 0.2 setosa
5.1 3.4 1.5 0.2 setosa
5.0 3.5 1.3 0.3 setosa
4.5 2.3 1.3 0.3 setosa
4.4 3.2 1.3 0.2 setosa
5.0 3.5 1.6 0.6 setosa
5.1 3.8 1.9 0.4 setosa
4.8 3.0 1.4 0.3 setosa
5.1 3.8 1.6 0.2 setosa
4.6 3.2 1.4 0.2 setosa
5.3 3.7 1.5 0.2 setosa
5.0 3.3 1.4 0.2 setosa
7.0 3.2 4.7 1.4 versicolor
6.4 3.2 4.5 1.5 versicolor
6.9 3.1 4.9 1.5 versicolor
5.5 2.3 4.0 1.3 versicolor
6.5 2.8 4.6 1.5 versicolor
5.7 2.8 4.5 1.3 versicolor
6.3 3.3 4.7 1.6 versicolor
4.9 2.4 3.3 1.0 versicolor
6.6 2.9 4.6 1.3 versicolor
5.2 2.7 3.9 1.4 versicolor
5.0 2.0 3.5 1.0 versicolor
5.9 3.0 4.2 1.5 versicolor
6.0 2.2 4.0 1.0 versicolor
6.1 2.9 4.7 1.4 versicolor
5.6 2.9 3.6 1.3 versicolor
6.7 3.1 4.4 1.4 versicolor
5.6 3.0 4.5 1.5 versicolor
5.8 2.7 4.1 1.0 versicolor
6.2 2.2 4.5 1.5 versicolor
5.6 2.5 3.9 1.1 versicolor
5.9 3.2 4.8 1.8 versicolor
6.1 2.8 4.0 1.3 versicolor
6.3 2.5 4.9 1.5 versicolor
6.1 2.8 4.7 1.2 versicolor
6.4 2.9 4.3 1.3 versicolor
6.6 3.0 4.4 1.4 versicolor
6.8 2.8 4.8 1.4 versicolor
6.7 3.0 5.0 1.7 versicolor
6.0 2.9 4.5 1.5 versicolor
5.7 2.6 3.5 1.0 versicolor
5.5 2.4 3.8 1.1 versicolor
5.5 2.4 3.7 1.0 versicolor
5.8 2.7 3.9 1.2 versicolor
6.0 2.7 5.1 1.6 versicolor
5.4 3.0 4.5 1.5 versicolor
6.0 3.4 4.5 1.6 versicolor
6.7 3.1 4.7 1.5 versicolor
6.3 2.3 4.4 1.3 versicolor
5.6 3.0 4.1 1.3 versicolor
5.5 2.5 4.0 1.3 versicolor
5.5 2.6 4.4 1.2 versicolor
6.1 3.0 4.6 1.4 versicolor
5.8 2.6 4.0 1.2 versicolor
5.0 2.3 3.3 1.0 versicolor
5.6 2.7 4.2 1.3 versicolor
5.7 3.0 4.2 1.2 versicolor
5.7 2.9 4.2 1.3 versicolor
6.2 2.9 4.3 1.3 versicolor
5.1 2.5 3.0 1.1 versicolor
5.7 2.8 4.1 1.3 versicolor
6.3 3.3 6.0 2.5 virginica
5.8 2.7 5.1 1.9 virginica
7.1 3.0 5.9 2.1 virginica
6.3 2.9 5.6 1.8 virginica
6.5 3.0 5.8 2.2 virginica
7.6 3.0 6.6 2.1 virginica
4.9 2.5 4.5 1.7 virginica
7.3 2.9 6.3 1.8 virginica
6.7 2.5 5.8 1.8 virginica
7.2 3.6 6.1 2.5 virginica
6.5 3.2 5.1 2.0 virginica
6.4 2.7 5.3 1.9 virginica
6.8 3.0 5.5 2.1 virginica
5.7 2.5 5.0 2.0 virginica
5.8 2.8 5.1 2.4 virginica
6.4 3.2 5.3 2.3 virginica
6.5 3.0 5.5 1.8 virginica
7.7 3.8 6.7 2.2 virginica
7.7 2.6 6.9 2.3 virginica
6.0 2.2 5.0 1.5 virginica
6.9 3.2 5.7 2.3 virginica
5.6 2.8 4.9 2.0 virginica
7.7 2.8 6.7 2.0 virginica
6.3 2.7 4.9 1.8 virginica
6.7 3.3 5.7 2.1 virginica
7.2 3.2 6.0 1.8 virginica
6.2 2.8 4.8 1.8 virginica
6.1 3.0 4.9 1.8 virginica
6.4 2.8 5.6 2.1 virginica
7.2 3.0 5.8 1.6 virginica
7.4 2.8 6.1 1.9 virginica
7.9 3.8 6.4 2.0 virginica
6.4 2.8 5.6 2.2 virginica
6.3 2.8 5.1 1.5 virginica
6.1 2.6 5.6 1.4 virginica
7.7 3.0 6.1 2.3 virginica
6.3 3.4 5.6 2.4 virginica
6.4 3.1 5.5 1.8 virginica
6.0 3.0 4.8 1.8 virginica
6.9 3.1 5.4 2.1 virginica
6.7 3.1 5.6 2.4 virginica
6.9 3.1 5.1 2.3 virginica
5.8 2.7 5.1 1.9 virginica
6.8 3.2 5.9 2.3 virginica
6.7 3.3 5.7 2.5 virginica
6.7 3.0 5.2 2.3 virginica
6.3 2.5 5.0 1.9 virginica
6.5 3.0 5.2 2.0 virginica
6.2 3.4 5.4 2.3 virginica
5.9 3.0 5.1 1.8 virginica
;Ingat untuk species Anda harus menggunakan tipe
$, karena species merupakan karakter. Anda
akan mendapatkan hasil kurang lebih seperti ini, dengan 150 baris ke
bawah. (Catatan : pada modul ini hanya ditampilkan 6 baris).
| sepal_length | sepal_width | petal_length | petal_width | species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
DISKUSI : Lebih baik mana OutStream atau InStream?
3. Penyimpanan Permanen
Anda perlu menyatakan secara khusus di R, jika data Anda akan
disimpan dalam Library SAS. Hal ini berguna jika data tersebut Anda
simpan untuk digunakan berulang kali dan tetap ada jika ada keluar dari
Program SAS. Jika tidak Anda nyatakan secara khusus, maka data Anda akan
disimpan di Temporary Library WORK.
Di proses ini, saya membuat folder untuk penyimpanan di
SAS Studio terlebih dahulu.
LIBNAME STA1261 "/home/User_ID_Anda/sasuser.v94/NamaFolderAnda";
DATA STA1261.iris_outstream;
infile "/home/User_ID_Anda/sasuser.v94/iris.txt";
input sepal_length sepal_width petal_length petal_width species$;
cards;Ada 2 hal yang berbeda dengan penyimpanan sementara, yaitu :
1. terdapat Perintah LIBNAME yang berisi
NAMA_LIBRARY yaitu STA1261 dan lokasi
penyimpanannya yaitu
/home/User_ID_Anda/sasuser.v94/NamaFolderAnda
2. Akses terhadap DATA, yaitu bukan langsung dengan data
iris_outstream, melainkan Anda harus menyebutkan
NAMA_LIBRARY nya terlebih dahulu
STA1261.iris_outstream
Catatan : Pada kasus data yang disimpan secara temporary, selain Anda
bisa memanggilnya secara langsung iris_InStream atau
iris_OutStream, Anda bisa memanggilnya dengan
WORK.iris_instream atau
WORK.iris_outstream
PROC PRINT DATA=iris_outstream;
RUN;akan sama dengan
PROC PRINT DATA=WORK.iris_outstream;
RUN;C. PROC
Terdiri dari sekelompok pernyataan SAS yang memanggil dan mengeksekusi sebuah prosedur (PROCedure)
1. PRINT Procedure (PROC PRINT)
Salah satu bentuk paling sederhana
PROC PRINT DATA=iris_outstream;
RUN;Salah satu bentuk lebih rumit
PROC PRINT DATA=iris_outstream;
VAR petal_length species;
WHERE species CONTAINS 'setosa' AND petal_length >= 1.7;
TITLE 'INI JUDUL';
RUN;Lebih lanjut mengenai PROC PRINT. SAS Documentation PROC PRINT
2. CONTENTS Procedure (PROC CONTENTS)
PROC CONTENTS data=iris_outstream;
TITLE 'INI JUDUL LAGI';
RUN;Lebih lanjut mengenai PROC CONTENTS. SAS Documentation PROC CONTENTS
Seharusnya pada titik ini Anda menyadari, bahwa ada kesalahan cukup fatal di materi saya di atas. Jika Anda mengetahuinya, silahkan berdiri, angkat tangan Anda, sebutkan Nama & NIM Anda, serta sebutkan kesalahan pada sintaks di atas, untuk 10 poin tambahan pada nilai akhir Praktikum Anda. (Hanya untuk 1 orang!). Saya sudah jelaskan mengenai ini minggu lalu.
3. SORT Procedure (PROC SORT)
PROC SORT DATA=iris_outstream;
BY sepal_length;
RUN;Lebih lanjut mengenai PROC SORT. SAS Documentation PROC SORT
D. Pernyataan pada Tahapan Data
1. SET
DATA SETOSA VERSICOL VIRGINIC;
SET iris_outstream;
IF (species='setosa') THEN OUTPUT SETOSA;
IF (species='versicol') THEN OUTPUT VERSICOL;
IF (species='virginic') THEN OUTPUT VIRGINIC;
RUN;2. DROP
DATA SETOSA VERSICOL VIRGINIC (DROP=sepal_width sepal_length);
SET iris_outstream;
IF (species='setosa') THEN OUTPUT SETOSA;
IF (species='versicol') THEN OUTPUT VERSICOL;
IF (species='virginic') THEN OUTPUT VIRGINIC;
RUN;3. KEEP
DATA SETOSA VERSICOL VIRGINIC (KEEP=sepal_width sepal_length);
SET iris_outstream;
IF (species='setosa') THEN OUTPUT SETOSA;
IF (species='versicol') THEN OUTPUT VERSICOL;
IF (species='virginic') THEN OUTPUT VIRGINIC;
RUN;4. IF
DATA SETOSA VERSICOL VIRGINIC;
SET iris_outstream;
IF (species='setosa') THEN OUTPUT SETOSA;
IF (species='versicol') THEN OUTPUT VERSICOL;
IF (species='virginic') THEN OUTPUT VIRGINIC;
RUN;5. DO-loop
Kenapa butuh Loop?
DATA MeterToFeet;
INPUT meter @@;
Feet = Meter*3.281;
LINES;
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 8 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 9 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 10 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 15 15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 16 16.1 16.2 16.3 16.4 16.5 16.6 16.7 16.8 16.9 17 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 18 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 19 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 20
;DATA MeterToFeet2;
DO Meter = 0.1 TO 20 BY 0.1;
Feet = Meter*3.281;
OUTPUT;
END;Anda pilih yang mana?
Contoh Lain
DATA normal1;
DO z = -4 TO 4.05 BY 0.2;
density = (1.0/SQRT(2*3.1415926536))*EXP(-z**2/2);
OUTPUT;
END;
PROC PLOT DATA=normal1;
PLOT density*z / HAXIS=-4 TO 4 BY 1;
TITLE ‘Sebaran Normal Baku’;
RUN;DATA normal2;
n = 40;
DO i = 1 TO n;
x = 50 + 10*NORMAL(0);
OUTPUT;
END;
PROC CHART DATA=normal2;
VBAR x / MIDPOINTS=20 TO 80 BY 5;
TITLE ‘Bangkitan data normal dengan rataan 50 dan simpangan 10’;
RUN;DATA seragam;
DO i = 1 TO 100;
y = UNIFORM(0);
OUTPUT;
END;
PROC CHART DATA=seragam;
VBAR y / MIDPOINTS=0.05 TO 0.95 BY 0.1;
TITLE ‘Bangkitan data seragam (uniform) dengan selang nilai (0,1)’;
RUN;Catatan
Materi Kuliah
DATA normal3;
n = 40;
DO i = 1 TO 500;
DO j = 1 TO n;
x = 50 + 10*NORMAL(0);
jum = jum + x;
END;
Rataan = jum / n;
OUTPUT;
END;
PROC PRINT DATA=normal3;
TITLE ‘Bangkitan data 500 kali masing2 dengan n=40’;
PROC CHART DATA=normal3;
VBAR rataan / MIDPOINTS=40 TO 60 BY 2;
RUN;Code Perbaikan
DATA normal3;
n = 40;
DO i = 1 TO 500;
jum = 0;
DO j = 1 TO n;
x = 50 + 10*NORMAL(0);
jum = jum + x;
END;
Rataan = jum / n;
OUTPUT;
END;
PROC PRINT DATA=normal3;
TITLE ‘Bangkitan data 500 kali masing2 dengan n=40’;
PROC CHART DATA=normal3;
VBAR rataan / MIDPOINTS=40 TO 60 BY 2;
RUN;Ada satu baris yang berbeda pada syntax ini yang membedakannya dengan Materi Kuliah. Kira-kira kenapa perlu dilakukan itu? Kenapa syntax sebelumnya tidak menunjukkan hasil? Kenapa Syntax perbaikan memberikan hasil? Jika Anda mengetahuinya, silahkan berdiri, angkat tangan Anda, sebutkan Nama & NIM Anda, serta sebutkan kesalahan pada sintaks di atas, untuk 10 poin tambahan pada nilai akhir Praktikum Anda. (Hanya untuk 1 orang!). Saya sudah jelaskan jawaban ini beberapa waktu lalu.