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;"/home/User_ID_Anda/sasuser.v94/iris.txt";
INFILE $;
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.
"/home/User_ID_Anda/sasuser.v94/NamaFolderAnda";
LIBNAME STA1261
DATA STA1261.iris_outstream;"/home/User_ID_Anda/sasuser.v94/iris.txt";
infile $;
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
=iris_outstream;
PROC PRINT DATA RUN;
akan sama dengan
=WORK.iris_outstream;
PROC PRINT DATA 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
=iris_outstream;
PROC PRINT DATA RUN;
Salah satu bentuk lebih rumit
=iris_outstream;
PROC PRINT DATA
VAR petal_length species;'setosa' AND petal_length >= 1.7;
WHERE species CONTAINS 'INI JUDUL';
TITLE RUN;
Lebih lanjut mengenai PROC PRINT. SAS Documentation PROC PRINT
2. CONTENTS Procedure (PROC CONTENTS)
=iris_outstream;
PROC CONTENTS data'INI JUDUL LAGI';
TITLE 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)
=iris_outstream;
PROC SORT DATA
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
VIRGINIC (DROP=sepal_width sepal_length);
DATA SETOSA VERSICOL
SET iris_outstream;IF (species='setosa') THEN OUTPUT SETOSA;
IF (species='versicol') THEN OUTPUT VERSICOL;
IF (species='virginic') THEN OUTPUT VIRGINIC;
RUN;
3. KEEP
VIRGINIC (KEEP=sepal_width sepal_length);
DATA SETOSA VERSICOL
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 = Meter*3.281;
Feet
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;= 0.1 TO 20 BY 0.1;
DO Meter = Meter*3.281;
Feet
OUTPUT; END;
Anda pilih yang mana?
Contoh Lain
DATA normal1;= -4 TO 4.05 BY 0.2;
DO z = (1.0/SQRT(2*3.1415926536))*EXP(-z**2/2);
density
OUTPUT;
END;
=normal1;
PROC PLOT DATA*z / HAXIS=-4 TO 4 BY 1;
PLOT density
TITLE ‘Sebaran Normal Baku’; RUN;
DATA normal2;= 40;
n = 1 TO n;
DO i = 50 + 10*NORMAL(0);
x
OUTPUT;
END;
=normal2;
PROC CHART DATA/ MIDPOINTS=20 TO 80 BY 5;
VBAR x 50 dan simpangan 10’;
TITLE ‘Bangkitan data normal dengan rataan RUN;
DATA seragam;= 1 TO 100;
DO i = UNIFORM(0);
y
OUTPUT;
END;
=seragam;
PROC CHART DATA/ MIDPOINTS=0.05 TO 0.95 BY 0.1;
VBAR y seragam (uniform) dengan selang nilai (0,1)’;
TITLE ‘Bangkitan data RUN;
Catatan
Materi Kuliah
DATA normal3;= 40;
n = 1 TO 500;
DO i = 1 TO n;
DO j = 50 + 10*NORMAL(0);
x = jum + x;
jum
END;= jum / n;
Rataan
OUTPUT;
END;
=normal3;
PROC PRINT DATA500 kali masing2 dengan n=40’;
TITLE ‘Bangkitan data
=normal3;
PROC CHART DATA/ MIDPOINTS=40 TO 60 BY 2;
VBAR rataan RUN;
Code Perbaikan
DATA normal3;= 40;
n = 1 TO 500;
DO i = 0;
jum = 1 TO n;
DO j = 50 + 10*NORMAL(0);
x = jum + x;
jum
END;= jum / n;
Rataan
OUTPUT;
END;
=normal3;
PROC PRINT DATA500 kali masing2 dengan n=40’;
TITLE ‘Bangkitan data
=normal3;
PROC CHART DATA/ MIDPOINTS=40 TO 60 BY 2;
VBAR rataan 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.