SAS - Ham Verileri Oku
SAS, birçok dosya formatını içeren çeşitli kaynaklardan veri okuyabilir. SAS ortamında kullanılan dosya formatları aşağıda tartışılmaktadır.
- ASCII (Metin) Veri Kümesi
- Sınırlandırılmış Veriler
- Excel Verileri
- Hiyerarşik Veriler
ASCII (Metin) Veri Kümesini Okuma
Metin formatındaki verileri içeren dosyalardır. Veriler genellikle bir boşlukla sınırlandırılır, ancak SAS'ın da işleyebileceği farklı sınırlayıcı türleri olabilir. Çalışan verilerini içeren bir ASCII dosyası düşünelim. Bu dosyayı kullanarak okuyoruzInfile açıklama SAS'da mevcuttur.
Misal
Aşağıdaki örnekte, adlı veri dosyasını okuyoruz emp_data.txt yerel çevreden.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt';
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Yukarıdaki kod çalıştırıldığında aşağıdaki çıktıyı alıyoruz.
Sınırlandırılmış Verileri Okuma
Bunlar, sütun değerlerinin virgül veya boru hattı vb. Gibi sınırlayıcı bir karakterle ayrıldığı veri dosyalarıdır. Bu durumda, dlm seçeneği infile Beyan.
Misal
Aşağıdaki örnekte yerel ortamdan emp.csv adlı veri dosyasını okuyoruz.
data TEMP;
infile
'/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=",";
input empID empName $ Salary Dept $ DOJ date9. ;
format DOJ date9.;
run;
PROC PRINT DATA = TEMP;
RUN;
Yukarıdaki kod çalıştırıldığında aşağıdaki çıktıyı alıyoruz.
Excel Verilerini Okuma
SAS, ithalat aracını kullanarak doğrudan bir excel dosyasını okuyabilir. SAS veri kümeleri bölümünde görüldüğü gibi, MS excel dahil çok çeşitli dosya türlerini işleyebilir. Emp.xls dosyasının SAS ortamında yerel olarak mevcut olduğunu varsayarsak.
Misal
FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;
PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;
Yukarıdaki kod, verileri excel dosyasından okur ve yukarıdaki iki dosya türü ile aynı çıktıyı verir.
Hiyerarşik Dosyaları Okuma
Bu dosyalarda veriler hiyerarşik formatta mevcuttur. Belirli bir gözlem için, altında birçok ayrıntı kaydının belirtildiği bir başlık kaydı vardır. Ayrıntı kayıtlarının sayısı bir gözlemden diğerine değişebilir. Aşağıda, hiyerarşik bir dosyanın bir örneği bulunmaktadır.
Aşağıdaki dosyada, her departmanın altındaki her çalışanın ayrıntıları listelenmiştir. İlk kayıt, departmandan bahseden başlık kaydıdır ve DTLS ile başlayan sonraki kayıt birkaç kayıt, ayrıntı kaydıdır.
DEPT:IT
DTLS:1:Rick:623
DTLS:3:Mike:611
DTLS:6:Tusar:578
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452
Misal
Hiyerarşik dosyayı okumak için, başlık kaydını bir IF cümlesiyle tanımladığımız ve ayrıntı kaydını işlemek için bir do döngüsü kullandığımız aşağıdaki kodu kullanırız.
data employees(drop = Type);
length Type $ 3 Department
empID $ 3 empName $ 10 Empsal 3 ;
retain Department;
infile
'/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
input Type $ @;
if Type = 'DEP' then
input Department $;
else do;
input empID empName $ Empsal ;
output;
end;
run;
PROC PRINT DATA = employees;
RUN;
Yukarıdaki kod çalıştırıldığında aşağıdaki çıktıyı alıyoruz.