98
1 กกกกกกกก 1 กกกกกก: SAS Language Elements กกกก : กกกกกกกกกกกกกกกกกกกกกกกกกก (STATISTICAL DATA PROCESSING) กกกกกกกกกกกกกกก: SAS กกกกกกก? กกกกกกกกกกกกกกกกกกกก Formats and Informats กกกกกกกกกกกกกกกกกกกกกกกกกกกกก ARM Macros กกกกกกก กกกกกกกกกกกก SAS SAS กกกกกกก? กกกกกกกกกกก SAS กกกกกกก กกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก -กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกก SAS กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกกกกก กกกก SAS: กกกกกกกกก

home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

1

กลมท 1 หวขอ: SAS Language Elementsวชา: การประมวลผลขอมลเชงสถต (STATISTICAL

DATA PROCESSING)

เนอหามดงน:

SAS คออะไร? ตวเลอกของชดขอมล Formats and Informats ฟงกชนและการเรยกชดคำาสง ARM Macros คำาสง ตวเลอกระบบ SAS

SAS คออะไร? พนฐานภาษา SAS ทสนใจ

การตดตงขอมล การจดขอมลและขาวสาร ฟงกชนและการตดตงชดคำาสง -ทผเขยนขนจะมการตอบสนองตอโปรแกรม ทางเลอกของระบบ SAS

สำาหรบรายละเอยดของขอมลเกยวกบองคประกอบแตละภาษาโปรดดทการอางอง ภาษา SAS: พจนานกรม

Page 2: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

2

ตวเลอกของชดขอมล

ความหมายตวเลอกของชดขอมล

ชดขอมลทมการระบการกระทำาทนำาไปใชกบชดขอมล SAS สามารถดำาเนนการไดดงน

การเปลยนชอตวแปร ขอสงเกต หรอ การเลอกลำาดบ (n) สำาหรบการประมวลผล ตวแปรทลดลงจากการประมวลผลหรอจากการสงออกชด

ขอมล ระบรหสผานสำาหรบชดขอมล

ไวยากรณสำาหรบชดขอมลระบตวเลอกชดขอมลในวงเลบตอทายดวย ชดขอมลชอ SAS เพอระบชดขอมลทมตวเลอกหลากหลาย โดยแยกออกจากกน

(option-1=value-1<...option-n=value-n>)

ตวอยาง การแสดงตวเลอกในชดขอมล SASdata scores(keep=team game1 game2 game3);proc print data=new(drop=year);set old(rename=(date=Start_Date));

การใชตวเลอกของชดขอมล

โดยใชตวเลอกชดขอมล SAS ทเปน INPUT หรอ OUTPUT

Page 3: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

3

สวนใหญการตงคาของชดขอมล SAS สามารถนำาไปใชกบการปอนขอมลหรอการสงออกของชดขอมล SAS ในแตละขนตอนถาเลอกชดขอมลทมความเกยวของกบการปอนขอมล ขอมลจะถกอานถาตวเลอกทปรากฏในชดขอมลหลงจากทมการสงออกจากการกำาหนดในชดขอมลในขนตอน PROC จะมการแสดงผลชดขอมล SAS และจะตองปรากฏอยในขอความ ปจจบนอาจจะไมไดอยใน OUTPUT ใดๆ

ชดขอมลบางชดอาจมการเลอกเชน COMPRESS ซงมความหมายเฉพาะ เมอสรางชดขอมล SAS และมคณสมบตตามทชดขอมลกำาหนดการสรางชดขอมลสามารถเปลยนแปลงตวเลอกอนๆเชน (PW= and LABEL=) กบชดขอมล PROC สำาหรบขอมลเพมเตมโปรดดทคมอขนตอนของชดขอมลในฐาน SAS

เมอเลอกชดขอมลจะปรากฏใน INPUT และ OUTPUT ในขอมลชดเดยวกน หรอขนตอน PROC เลอกชดขอมล SAS ทจะปอนขอมลกอนทจะเขยนโปรแกรม หรอกอนทจะแสดงผลชดขอมล ในทำานองเดยวกน การประมวลผลชดขอมลทระบไวจะถกสรางขนหลงจากทมการใชคำาสงการเขยนโปรแกรม ตวอยางเชน เมอใช RENAME= ตวเลอกชดขอมล และชอใหมจะไมเกยวของกบตวแปรจนถงขนตอนทขอมลจะสนสดลง

ในบางกรณชดขอมลอาจมความขดแยงเมอใชคำาสงเดยวกน ตวอยางเชน (DROP= and KEEP=) ไมสามารถเลอกชดคำาสงเดยวกนได นอกจากนบางกรณสามารถใชในตอนทมปญหา ตวอยางเชน ถาใช (KEEP= and RENAME=) ชดขอมลทระบไวในคำาสง KEEP = ความตองการทจะใชชอตวแปรเดม เพราะ KEEP= เปนกระบวนการกอนทชดขอมล SAS จะถกอาน การระบชอใหม RENAME= จะนำาไปใชในการเขยนโปรแกรมทเปนไปตามคำาสง SET STATEMENT.

วธการเลอกชดขอมลในระบบ มการดำาเนนการอยางไร

Page 4: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

4

การเลอกชดขอมลในระบบมจำานวนมากเปนขอมลทใชชอเดยวกนและฟงกชนเดยวกน การเลอกระบบสงผลใหกบขอมล ในตวอยางน การเลอกชดขอมลจะปรากฏขนโดยมการแทนทตวเลอกในระบบ BOS=OPTION STATEMENT ระบวามเพยง 100 คาสงเกตทจะไดรบการประมวลผล จากขอมลทอยภายใน SAS OBS=การเลอกชดขอมลใน STATEMENT อยางไรกตามสำาหรบการเลอกชดขอมลในระบบ จากขอมลชดทสองมเพยงหาครงทสงเกตจะอานจากขอมลชดทสอง ขนตอน PROC PRINT จะพมพขอมลชดสดทาย ขอมลชดนมหาอนดบสงเกตจากขอมลชดทสองตามดวย 100 คาทสงเกตจากขอมลชดทสามoptions obs=100;

data final; set two(obs=5) three;run;

proc print data=final; run;

ผลจากการการรนโปรแกรมNOTE: AUTOEXEC processing completed.

1 options obs=100;23 data final;4 set two(obs=5) three;ERROR: File WORK.TWO.DATA does not exist.ERROR: File WORK.THREE.DATA does not exist.5 run;

NOTE: The SAS System stopped processing this step because of errors.WARNING: The data set WORK.FINAL may be incomplete. When this step was stopped there were 0 observations and 0 variables.NOTE: DATA statement used (Total process time): real time 0.19 seconds cpu time 0.03 seconds

6

Page 5: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

5

7 proc print data=final;8 run;

NOTE: No variables in data set WORK.FINAL.NOTE: PROCEDURE PRINT used (Total process time): real time 0.01 seconds cpu time 0.01 seconds

Formats and Informants

ความหมายของรปแบบรปแบบเปนชนดขององคประกอบภาษา SAS ทใชรปแบบหรอรนคำา

สงสำาหรบคาขอมลทจะแสดงหรอเขยนเปนเอาทพท ประเภทของรปแบบสอดคลองกบชนดขอมลของ ตวอกษร, ตวเลข, วนท, เวลาหรอการประทบเวลา ความสามารถในการสรางรปแบบทผใชกำาหนดยงสนบสนนตวอยางของรปแบบ SAS เปนไบนาร, วนท, และคำาพด ตวอยางเชน WORDS22 รปแบบซงจะแปลงคาตวเลขทเทยบเทาของพวกเขาในคำาพดเขยนคาตวเลข 692 เปน six hundred ninety-two.วากยสมพนธ

ไวยกรณ Formats SASไวยกรณ Formats SAS มตอไปน:<$> formats< w > . < d >

$ แสดงใหเหนรปแบบตวอกษร ขาดมนเปนการแสดงใหเหนรปแบบทเปนตวเลข

จดรปแบบ ชอรปแบบ รปแบบทเปนรปแบบ SAS หรอรปแบบทผใชกำาหนดทถกกำาหนดไวกอนหนาดวยคำาสงในรปแบบ PROC สำาหรบขอมลเกยวกบผใชกำาหนดรปแบบใหดทขนตอนการจดรปแบบในคมอฐาน SAS

Page 6: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

6

w ระบความกวางของรปแบบ ซงรปแบบมากทสดคอจำานวนของคอลมนในผลลพธของขอมล

d ระบปจจยทเลอกทศนยมในรปแบบทเปนตวเลขรปแบบทมกจะประกอบดวยรอบระยะเวลา (.) เปนสวนหนงของ

ชอ ถาคณละเวน w และ d คาจากรปแบบ SAS ใชคาเรมตน d คาทคณระบมรปแบบทบอก SAS เพอแสดงตำาแหนงทศนยมทมจำานวนมาก รปแบบทไมเคยเปลยนแปลงหรอตดเกบไวภายในคาขอมล ตวอยางเชนใน DOLLAR10.2 คา w จาก 10 ระบสงสด 10 คอลมน สำาหรบคา d จาก 2 ระบวาทงสองคอลมนนเปนสวนทศนยมของคาซงใบแปดคอลมนสำาหรบทกตวอกษรทเหลออยในคา คอลมนทเหลอรวมจดทศนยมคาตวเลขทเหลอเครองหมายลบถาคาเปนลบเครองหมายดอลลารและเครองหมายจลภาค

ถารปแบบความกวางแคบเกนไปทจะเปนตวแทนของคา SAS จะพยายามทบบคาลงในพนทวาง รปแบบตวอกษรตดทอนคาทางดานขวา รปแบบตวเลขบางครงกลบไปทดทสดของ WD รปแบบ SAS พมพเครองหมายดอกจนถาคณไมไดระบความกวางเพยงพอ ในตวอยางตอไปนผลทไดคอ x = **

x = 123;put x = 2.;

ถาคณใชรปแบบทไมถกตอง เชน การใชรปแบบตวเลขในการเขยนตวอกษรโปรแกรม SAS จะพยายามใชรปแบบคลายกบประเภทอนๆ หากเกดขอผดพลาดโปรแกรม SAS จะอธบายถงปญหาทเกดขน

วธในการระบ Formatsคณสามารถใช Formats ในรปไดดงตอไปน:

ในรายงาน PUT

Page 7: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

7

จะพมพคำาสง PUT หลงจากทชอตวแปรจะใชรปแบบการเขยนคาของขอมล ตวอยางเชน DOLLAR w. d รปแบบการเขยนคาตวเลขสำาหรบจำานวนเงนทเปนจำานวนเงน

amount=1145.32;put amount dollar10.2;

DOLLAR w. d ในรปแบบคำาสง PUT จะไดผลดงน$ 1,145.32

ดขอมลเพมเตมไดท PUT ฟงกชน : พจนานกรมสำาหรบขอมลเพมเตม ฟงกชน PUT, PUTC หรอ PUTN

ฟงกชนแปลง PUT ตวแปรทเปนตวเลข ตวอกษร ตวแปร หรอคาคงทใด ๆ โดยใชรปแบบทถกตองและสงผลในรปคาตวอกษร ตวอยางเชนคำาสงตอไปน แปลงคาของตวแปรทเปนตวเลขในการแทนเลขฐานสบหกสองตวอกษร

num=15; char=put(num, hex2.);

ฟงกชน PUT สงกลบคาของ 0F ซงมการกำาหนดคาใหกบตวแปรฟงกชน PUT จะเปนประโยชนสำาหรบการแปลงคาตวเลขใหกบคาตวอกษรสำาหรบขอมลเพมเตมโปรดดท PUT ฟงกชน ในฟงกชนและ SAS การปฏบต CALL ขอมลอางอง

ฟงกชน % SYSFUNC มาโครSYSFUNC% (หรอ QSYSFUNC %) ฟงกชนแมโครดำาเนนการโดย

SAS หรอทผใชกำาหนดฟงกชนและใชรปแบบตวเลอกเพอผลของการทำางานนอกขนตอน ตวอยางเชนโปรแกรมตอไปเขยนคาตวเลขในตวแปรแมโครเปนจำานวนเงน

%macro tst(amount);%put %sysfunc(putn(&amount,dollar10.2));

Page 8: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

8

%mend tst;%tst (1154.23);

สำาหรบขอมลเพมเตมโปรดดท SYSFUNC% และฟงกชน QSYSFUNC% ในภาษา SAS มาโคร: อางอง

คำาสงรปแบบในขนตอนของขอมลหรอขนตอน PROCรปแบบคำาสงทรวมทงตวแปรตวอกษรทมรปแบบตวอกษรและ

ตวแปรทเปนตวเลขทมรปแบบทเปนตวเลข SAS จะใชรปแบบการเขยนคาของตวแปรทคณระบ ตวอยางเชนคำาสงตอไปน ในขนตอนขอมลรวมจลภาค w . d รปแบบตวเลขกบตวแปร SALES1 ผาน SALES3

format sales1-sales3 comma10.2; หมายเหต : ถาคณกำาหนดรปแบบดวยกบคำาสงรปแบบกอนทจะสง PUT ทกชองวางนำากำาลงตด รปแบบทเกยวของกบตวแปรโดยใชคำาสง FORMAT ปรบปรงในคำาสง PUT ทตามมา สำาหรบรายละเอยดเกยวกบการใชการปรบปรงรปแบบด PUT คำาชแจงรายการ ในรายงาน SAS ขอมลอางอง

ในคำาสง attrib ในขนตอนของขอมลหรอขนตอน PROC คำาสง attrib ยงสามารถเชอมโยงรปแบบเชนเดยวกบคณสมบตอนๆ

ทมหนงหรอมากกวาหนงตวแปร ตวอยางเชนในคำาสงตอไป รายงาน attrib โดย w.d รปแบบกบตวแปร SALES1 ผาน SALES3

attrib sales1-sales3 format=comma10.2;เพราะคำาสง attrib รวมงานอยางถาวรในรปแบบทมตวแปรขนตอน

ขอมลใด ๆ ทตามมาหรอ PROC ขนตอนทใชในการเขยน COMMA10.2 คาของ SALES1, SALES2 และ SALES3 สำาหรบขอมลเพมเตมโปรดดทคำาชแจง attrib ในรายงาน SAS ขอมลอางอง

สมาคมถาวรกบชวคราว

Page 9: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

9

เมอคณระบรปแบบในคำาสง PUT SAS จะใชรปแบบการเขยนคาของขอมลในระหวางขนตอนขอมล แตไมไดอยางถาวรเชอมโยงรปแบบทมตวแปร อยางถาวรเชอมโยงรปแบบทมตวแปรใชคำาสงรปแบบหรอคำาสง attrib ในขนตอนขอมล SAS รวมงานอยางถาวรในรปแบบทมตวแปรโดยการปรบเปลยนขอมลทบงชในชดขอมล SAS

ใชคำาสงรปแบบหรอคำาสง attrib ในขนตอน PROC รปแบบทมตวแปรสำาหรบ ขนตอน PROC นนเชนเดยวกบขอมลใด ๆ ทเอาทพทชดวาขนตอนการสรางทมตวแปรทจดรปแบบ สำาหรบขอมลเพมเตมเกยวกบการใชรปแบบในขนตอน SAS ด คาทจดรปแบบ ในฐาน SAS ขนตอนคมอ

Informatsความหมายของ Informats

informat เปนชนดขององคประกอบภาษา SAS ทใชรปแบบหรอรนคำาสงสำาหรบคาขอมลทจะอานเปน input ประเภท informats สอดคลองกบชนดขอมลของตวอกษร, ตวเลข, วนท, เวลาหรอการประทบเวลาความสามารถในการสรางผใชกำาหนด informats ยงสนบสนน ตวอยางของ informats SAS เปนวนท, ไบนาร และจลภาค ตวอยางเชนคาตอไปนมเครองหมายดอลลารและจลภาค

$ 1,000,000ในการลบเครองหมายดอลลาร ($) และเครองหมายจลภาค (,) กอนทการจดเกบคาตวเลขในตวแปร 1000000 อานคานดวย COMMA11 informat ถาคณกำาหนดตวแปรแรก SAS ใช informat เพอตรวจสอบวาตวแปรเปนตวเลขหรอตวอกษร SAS ยงใช informat เพอกำาหนดความยาวของตวแปรตวอกษรไวยกรณ Informat SASไวยกรณ Informat SAS มตอไปน:<$> informat < w >. < d >

Page 10: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

10

$ ใชอานขอมลทเปนตวอกษรInformat ชอ informat เปน SAS informat หรอ

informat กำาหนดโดยผใชทถกกำาหนดไวกอนหนาดวยกบคำาสง invalue ในรปแบบ PROC รปแบบขนตอน ในฐาน SAS ขนตอนคมอ

w ระบความกวาง informat ซง informats มากทสดคอจำานวนของคอลมนในการปอนขอมล

d ระบปจจยทปรบตวเลอกทศนยมใน informats ตวเลข SAS แบงการปอนขอมลโดยมากทสด 10 คาของ d 

หมายเหต : แมวา SAS สามารถอานไดถง 32 หลกเมอคณระบ informats ตวเลขบางตวเลขทมมากกวา 15 หลกอยางมนยสำาคญอาจสญเสยความแมนยำาเนองจากขอ จำากด ของแปดไบตแทนทศนยมโดยใชคอมพวเตอรสวนใหญ

Informats ประกอบดวยรอบระยะเวลา (.) เปนสวนหนงของชอ ถาคณละเวน w และ d คาจาก informat SAS ใชคาเรมตน หากขอมลทมจดทศนยม SAS ละเวน d มลคาและอานจำานวนตำาแหนงทศนยมทเปนจรงในการปอนขอมล

ถาความกวาง informat แคบเกนไปทจะอานคอลมนทงหมดในการปอนขอมลคณอาจไดรบผลลพธทไมคาดคด ปญหาทมกเกดขนกบ informats วนทและเวลา คณตองปรบความกวางของ informat จะรวมถงชองวางหรออกขระพเศษระหวางวนเดอนปหรอเวลาสำาหรบขอมลเพมเตมเกยวกบคาวนทและเวลา ดวนทเวลาและชวงเวลาในการอางอง SAS

เมอปญหาเกดขนกบ informat SAS เขยนบนทกลงในบนทก SAS และกำาหนดคาทหายไปใหกบตวแปร ปญหาทเกดขนถาคณใช informat เขากนไมไดเชน informat ตวเลขการอานขอมลตวอกษรหรอถาคณระบความกวางของ informat วนทและเวลาททำาให SAS การอานอกขระพเศษในคอลมนสดทาย

Page 11: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

11

วธในการระบ Informatsคณสามารถใช Informats ในรปไดดงตอไปน:

ในคำาสง INPUT

คำาสง INPUT กบ informat หลงชอตวแปรเปนวธทงายทสดในการอานคาเปนตวแปร ตวอยางเชนคำาสง INPUT ตอไปนใชสอง informats input @15 style $3. @21 price 5.2;

$ w. informat ตวอกษรทอานคาลงสไตลตวแปร w . d ตวเลข informat อานคาลงราคาตวแปลสำาหรบการอภปรายทสมบรณของคำาสง INPUT ใหด คำาชแจง INPUT ในรายงาน SAS ขอมลอางอง

ดวย INPUT, INPUTC และฟงกชน INPUTN

SAS ใช informat ระบ informat กำาหนดวาคาผลลพธเปนตวเลขหรอตวอกษร ดงนนฟงกชน Input เปนประโยชนสำาหรบการแปลงขอมล ตวอยางเชน

TempCharacter = 0.6 '98 ';TemperatureNumber = INPUT (TempCharacter, 4.);

ทนฟงกชน INPUT รวมกบ w . d informat แปลงคาตวอกษรของ TempCharacter เปนคาตวเลขและกำาหนดคาตวเลขท 98.6 TemperatureNumber

ใชฟงกชน PUT กบรปแบบ SAS การแปลงคาตวเลขเปนคาตว สำาหรบตวอยางของตวเลขเพอการแปลงตวอกษรด PUT ฟงกชน ในฟงกชนและ SAS การปฏบต CALL ขอมลอางอง 

ในรายงาน informat ในขนตอนของขอมลหรอขนตอน PROC

Page 12: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

12

informat กบตวแปร SAS ใช informat ในคำาสง INPUT ภายหลงจากการอานคาเปนตวแปร ตวอยางเชนในคำาสงตอไปน

informat Birthdate Interview date9.;input @63 Birthdate Interview;

informat ทเกยวของกบคำาสง informat พฤตกรรม ในคำาสง INPUT สำาหรบรายละเอยดเกยวกบการใช ปรบปรงใหดท คำาชแจง INPUT รายการ ในรายงาน SAS ขอมลอางอง ดงนน SAS ใชการปอนขอมลรายการแกไขการอานตวแปรเพอให

o w คาใน informat ไมไดกำาหนดตำาแหนงคอลมนหรอความกวางของชองใสในแฟมภายนอกชองวางทฝงอยในการปอนขอมลจะถอวาเปนตวคนนอกจากคณจะเปลยนหรอ DLM = DLMSTR = ตวเลอกในรายงาน INFILE

o สำาหรบ informats ตวอกษร w คาใน informat ระบความยาวของตวแปรตวอกษร

o สำาหรบ informats ตวเลข w คาจะถกละเวนo สำาหรบ informats ตวเลข d คาใน informat จะทำางานในลกษณะ

ปกตสำาหรบ informats ตวเลข

หากคณมรหสคำาสง INPUT จะใชรปแบบหนงของการปอนขอมลดงกลาวเปนขอมลทจดรปแบบการปอนขอมลหรอคอลมนรปแบบของการปอนขอมลทไมไดใชเมอคณใชคำาสง informatดคำาชแจง INPUT รายการในรายงาน SAS ขอมลอางองสำาหรบขอมลเพมเตมเกยวกบวธการใชการปอนขอมลรายการแกไขเพออานขอมลหมายเหต : แฟมขอความทมตนกำาเนดมาจากทใดกไดทนอกเหนอจากสภาพแวดลอมในการเขารหสในประเทศใดๆ กอาจจะจำาเปนทจะตองระบการเขารหสตวเลอก = ในสภาพแวดลอมท ASCII หรอ EBCDIC อยางใดอยางหนง ตวอยางเชนเมอคณอานไฟลขอความบนแพลตฟอรม

Page 13: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

13

EBCDIC ASCII กจะแนะนำาวาคณระบการเขารหสตวเลอก = ในชอไฟลหรอขอความ INFILE แตถาคณใช DSD และ DLM = DLMSTR หรอตวเลอก = ในชอไฟลหรอขอความ INFILE การเขารหส = ตวเลอกเปนสงจำาเปนเพราะตวเลอกเหลานจำาเปนตองมตวอกษรบางอยางในเซสชนการเขารหส (เชนอญประกาศเครองหมายจลภาคและชองวาง) . ใช informats การเขารหสเฉพาะควรจะสงวนไวสำาหรบใชกบแฟมไบนารจรง นนคอพวกเขามตวละครทงสองและสาขาทไมไดตว

ในคำาสง attrib ในขนตอนของขอมลหรอขนตอน PROCคำาสง attrib ยงสามารถเชอมโยง informat เชนเดยวกบคณสมบต

อน ๆ ทมหนงหรอมากกวาหนงตวแปร ตวอยางเชนในงบดงตอไปน

attrib Birthdate Interview informat=date9.;input @63 Birthdate Interview;informat ทเกยวของโดยใชตวเลอก informat = ในคำาสง attrib

พฤตกรรมเชน informat ในคำาสง INPUT สำาหรบรายละเอยดเกยวกบการใช ด คำาชแจง INPUT, รายการในรายงาน SAS ขอมลอางอง ดงนน SAS ใชการปอนขอมลรายการแกไขการอานตวแปรในลกษณะเดยวกบทมนไมสำาหรบรายงาน informat

สำาหรบขอมลเพมเตมโปรดดท คำาชแจง attrib ในรายงาน SAS ขอมลอางอง

สมาคมถาวรกบชวคราวเมอคณระบ informat ในคำาสง INPUT, SAS ใช informat การ

อานคาการปอนขอมลในระหวางขนตอนขอมลท SAS แตไมไดเชอมโยง informat กบตวแปร อยางถาวรเชอมโยง informat กบตวแปร informat ใชคำาสงหรอคำาสง attrib SAS รวมอยางถาวร informat กบตวแปรโดยการปรบเปลยนขอมลทบอกในชดขอมล SAS

Page 14: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

14

Informats ผใชกำาหนดเองนอกจาก informats ทจะมาพรอมกบฐาน SAS ซอฟตแวรทคณ

สามารถสราง informats ของคณเอง ในฐาน SAS ซอฟแวรรปแบบ PROC ชวยใหคณสราง informats ของคณเองและรปแบบสำาหรบตวละครทงสองและตวแปรทเปนตวเลขสำาหรบขอมลเพมเตมเกยวกบการทผใชกำาหนด informats ดขนตอนการจดรปแบบในฐาน SAS

เมอคณรนโปรแกรม SAS ทใชทผใชกำาหนด informats เหลานควรจะสามารถใชได สองวธทจะทำาให informats เหลานทมอย

เพอสราง informats ถาวรไมไดชวคราวทมรปแบบ PROC ในการจดเกบซอรสโคดทสราง informats (รปแบบขน PROC)

กบโปรแกรม SAS ทใชพวกเขาถาคณรนโปรแกรมทไมสามารถหา informat ทผใชกำาหนดผลทตามมาขนอยกบการตงคาตวเลอก FMTERR ระบบ

ตวเลอกระบบ ผลFMTERR SAS หยดการเกดขอผดพลาดททำาใหขอมลทเปน

ปจจบนหรอขนตอน PROCNOFMTERR SAS ยงคงการประมวลผลโดยการแทนคาเรมตน

informat

แมวาการใช NOFMTERR ชวยใหเอสเอในการประมวลผลตวแปรทคณสญเสยขอมลทผใชกำาหนดอปกรณ informat ตวเลอกนสามารถกอใหเกดขนตอนทขอมลขอมลทอานผดและมนสามารถใหผลลพธทไมถกตอง สำาหรบขอมลเพมเตมโปรดดทตวเลอกระบบ FMTERR ใน SAS ตวเลอกระบบ: การอางอง.

Page 15: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

15

เพอหลกเลยงปญหาใหแนใจวาผใชของโปรแกรมของคณสามารถเขาถงทก informats ทผใชกำาหนดวาจะม

การใชByte สงซอสำาหรบขอมลไบนารจำานวนเตมเกยวกบ Big Endian และ Little Endian Platformsคำาจำากดความ

คาจำานวนเตมสำาหรบขอมลไบนารจำานวนเตมจะถกเกบไวมกจะอยในหนงในสามของขนาดหนงไบตสองไบตหรอสไบต การสงซอของไบตสำาหรบจำานวนเตมแตกตางกนไปขนอยกบแพลตฟอรม (สภาพแวดลอมการทำางาน)

การสงซอของไบตมความแตกตางระหวาง " big endian " และ "little

endian" แพลตฟอรม เงอนไขเหลานเปนภาษาทใชในการอธบายการสงซอไบตสำาหรบเมนเฟรมของไอบเอม (big endian) และสำาหรบแพลตฟอรม Intel-based (little endian) ในระบบ SAS แพลตฟอรมตอไปนจะมการพจารณาใหญ endian เมนเฟรม IBM, HP-UX, AIX, Solaris เมอ SPARC, และ Macintosh ใน SAS แพลตฟอรมตอไปนจะมการพจารณา little endian Intel ABI, Linux, OpenVMS อลฟา Integrity OpenVMS, Solaris บน x64, Tru64 ยนกซและ Windows

วธ Bytes ไดรบคำาสงบนแพลตฟอรม endian ใหญ 1 คาทถกเกบไวในไบนารและตวแทน

ทนในเลขฐานสบหก หนงไบตจะถกเกบเปน 01 สองไบตเปน 00 01 และสไบตเปน 00 00 00 01 บนแพลตฟอรม endian นอย 1 คาทถกเกบไวในหนงไบตเปน 01 (เชนเดยวกบใหญ endian) ในไบตทสองเปน 01 00 และในไบตทสเปน 01 00 00 00

Page 16: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

16

ถาจำานวนเตมมคาเปนลบ "สองของสวนประกอบ" แทนถกนำามาใช บตลำาดบสงของไบตทสำาคญทสดของจำานวนเตมจะถกตงคาบน ตวอยางเชน -2 จะแสดงในหนงสองและสไบตบนแพลตฟอรม endian ใหญเปน FE, FF FE และ FF FF FF FE ตามลำาดบ บนแพลตฟอรม endian เลก ๆ นอย ๆ แทนจะ FE, FE FF และ FE FF FF FF เหลานสงผลเปนตวแทนจากการสงออกของคาไบนารจำานวนเตม -2 แสดงออกในการแสดงเลขฐานสบหก

การอานขอมลทสรางขนบนแพลตฟอรมบก Endian Endian หรอลตเตล SAS สามารถอานจำานวนเตมการลงนามและลงนามโดยไมคำานงวาพวกเขาจะถกสรางขนบน endian ใหญหรอระบบ endian นอย ในทำานองเดยวกน SAS สามารถเขยนและลงนามจำานวนเตมไมไดลงนามทงในรปแบบ endian ใหญ endian และนอย ความยาวของจำานวนเตมเหลานสามารถมไดถงแปดไบต

ตารางตอไปนแสดงใหเหนซง informat ทจะใชสำาหรบชดตางๆของแพลตฟอรมในระบบ คอลมน ไม ชใหเหนวาเปนจำานวนทไมไดลงชอและ“ ”ไมสามารถลบ "ใช" แสดงวาจำานวนสามารถเปนไดทงลบหรอบวก

SAS Formats and Byte Ordering แพลตฟอรมสำาหรบการขอมลทไดสรางไว

แพลตฟอรมขอมลทจะอานตอไป

จำานวนเตมลง นาม

informat

big endian big endian ใช IB or S370FIB

big endian big endian ไม PIB, S370FPIB, S370FIBU

big endian little endian ใช S370FIBbig endian little endian ไม PIBR

Page 17: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

17

little endian big endian ใช IBRlittle endian big endian ไม PIBRlittle endian little endian ใช S370FIBlittle endian little endian ม PIB หรอ

PIBRbig endian Either ใช S370FIBbig endian Either ไม S370FPIBlittle endian Either ใช IBRlittle endian Either ไม PIBR

ตารางตอไปนเปรยบเทยบสญกรณไบนารจำานวนเตมตามภาษาโปรแกรม

ภาษา 2 ไบตหรอระบบ 8 บต

4 ไบตหรอระบบ 16 บต

8 ไบตหรอระบบ 64 บต

SAS IB2., IBR2., PIB2., PIBR2., S370FIB2., S370FIBU2., S370FPIB2.

IB4., IBR4., PIB4., PIBR4., S370FIB4., S370FIBU4., S370FPIB4.

IB8., IBR8., PIB8., PIBR8., S370FIB8., S370FIBU8., S370FPIB8.

PL/I BIN ถาวร (15) BIN ถาวร (31) BIN ถาวร (63)FORTRAN จำานวนเตม*2 จำานวนเตม*4 จำานวนเตม*8COBOL COMP PIC

9(4)COMP PIC 9(8) COMP PIC

9(16)IBM assembler

H F FD

Page 18: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

18

C สน int นาน

การทำางานรมกนระหวาง Packed Decimal and Zoned Decimal Data คำาจำากดความ

Packed decimal ระบวธการเขารหสตวเลขทศนยมโดยใชแตละไบตจะเปนตวแทนของตวเลขสองหลกทศนยม แทนทศนยมเกบขอมลทศนยมทมความแมนยำาแนนอน สวนทเปนเศษสวนของจำานวนจะถกกำาหนดโดย informat หรอรปแบบเพราะไมมแยก mantissa และตวแทน

ประโยชนของการใชขอมลทศนยมบรรจคอความแมนยำาแนนอนสามารถรกษา แตการคำานวณทเกยวของกบขอมลทศนยมอาจจะกลายเปนไมแนนอนเกดจากการขาดคำาแนะนำาพนเมอง

Zoned decimal ระบวธการเขารหสตวเลขทศนยมซงแตละหลกตองมหนงไบตในการจดเกบ byte สดทายมเครองหมายตวเลขทเปนตวเลขหลกสดทาย

Nibble ระบ 1/2 ของไบต

ประเภทของขอมลPacked decimal แทนทศนยมบรรจเกบตวเลขทศนยมในแตละ

"ตอด" ของไบต แตละ byte มสอง Nibbles และแทะแตละจะแสดงเปนตวอกษรฐานสบหก ตวอยางเชน 15 คาทถกเกบไวในสอง Nibbles ใชอกขระเลขฐานสบหกท 1 และ 5

บงชสญญาณจะขนอยกบสภาพแวดลอมการทำางานของคณ เมอไอบเอม mainframes ปายจะแสดงโดยแทะลาสด ทมรปแบบ C หมายถงคาบวก และ D หมายถงคาลบ ดวย informats, A, C, E, F และระบคาเปนบวกและ B และ D ระบคาลบใดๆ และอนๆไมถกตองสำาหรบลงนาม

Page 19: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

19

ขอมลทศนยมบรรจ ในทกสภาพแวดลอมการปฏบตการอนๆ สญญาณจะแสดงในไบตของตวเอง ถาบตลำาดบสงเปน 1 แลวจำานวนเปนลบมฉะนนจะเปนบวก

การแสดงขอมลทศนยม

คณสามารถใชรปแบบ S370FPD บนแพลตฟอรมทงหมดทจะไดรบการตงคาเครองคอมพวเตอรเมนเฟรมของไอบเอม

คณสามารถมขอมลทบรรจลงนามดวยตวบงชไมมวแวว รปแบบทศนยมบรรจและ informat จดการแทน มนมความสอดคลองระหวางแพลตฟอรม ASCII และ EBCDIC

โปรดทราบวารปแบบ S370FPDU และ informat คาดวาจะม F ในแทะลาสดขณะทศนยมบรรจคาดวาไมมสญญาณตอด

Zoned decimal การแสดงขอมลทศนยม

แทนทศนยมโลโกเกบทศนยมหลกในการสงซอแทะตำาของแตละ byte แตสำาหรบไบตทมปาย, แทะสงสนเปนตวเลขโซนแทะ (F เมอ EBCDIC และ 3 เมอ ASCII)

สญญาณทสามารถผสานเปนไบตทมหลกหรอสามารถจะแยกขนอยกบการเปนตวแทน แตรปแบบทศนยมมาตรฐานโลโกและ informat คาดวาสญญาณทจะรวมเขาเปน byte สดทาย

EBCDIC และ ASCII รปแบบทศนยมโลโกผลตแทนพมพเดยวกนตวเลข มสอง Nibbles ตอ byte แตละแสดงโดยตวอกษรฐานสบหก ตวอยางเชน 15 คาทถกเกบไวในไบตทสอง ไบตแรกม F1 คาเลขฐานสบหกและไบตทสองมคาฐานสบหก C5

Page 20: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

20

Packed Julian Dates ทงสองรปแบบและ informats ทจดการวนทจเลยนในการเปน

ตวแทนทศนยมบรรจเปน PDJULI และ PDJULG PDJULI ใชการคำานวณของไอบเอมเมนเฟรมปขณะท PDJULG ใชเกรกอเรยนการคำานวณ

การคำานวณเมนเฟรมของไอบเอมคดวา 1900 จะเปนปฐานและคาปในขอมลทบงชชดเชยจาก 1900 ตวอยางเชน 98 หมายถงป 1998 100 หมายความ 2000 และ 102 หมายถง 2002 1998 จะหมายถง 3898

การคำานวณเพอชวยใหเกรกอเรยนป 2 หลกหรอ 4 หลก ถาคณใชป 2 หลก SAS ใชการตงคาของ YEARCUTOFF ตวเลอกระบบเพอตรวจสอบปจรง

แพลตฟอรมทสนบสนน Packed Decimal and Zoned Decimal Data

แพลตฟอรมบางคนมคำาแนะนำาพนเมองเพอสนบสนนขอมลทศนยมบรรจและโลโกขณะทคนอนตองใชซอฟแวรทจะเลยนแบบการคำานวณ ตวอยางเชนเมนเฟรมของไอบเอมมการเรยนการสอนแพคเพมเพอเพมขอมลทศนยมบรรจ แตแพลตฟอรมทใช Intel ไมมการเรยนการสอนดงกลาวและตองแปลงขอมลทศนยมในรปแบบอน ๆ บาง

ภาษาทสนบสนนบรรจกลองทศนยมและโลโกขอมลทศนยมหลายภาษาทรองรบการบรรจทศนยมและโลโกขอมลทศนยม ตาราง

ตอไปนแสดงใหเหนวาภาษาโคบอลเบดเตลดภาพทสอดคลองกบรปแบบ SAS และ informats

Page 21: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

21

IBM VS ขอ COBOL II รปแบบทสอดคลองกนและ S370Fxxx Informats

PIC S9(X)บรรจทศนยม S370FPDw.PIC S9(X)บรรจทศนยม S370FPDUw.PIC S9(W) แสดง S370FZDw.PIC S9(W) แสดง S370FPDUw.เขาสระบบ PIC S9(W) แสดงทสำาคญ

S370FZDLw.

เขาสระบบ PIC S9(W) แสดง ทสำาคญเฉพาะกจ

S370FZDSw.

เขาสระบบ PIC S9(W)แสดงเฉพาะกจ

S370FZDTw.

สำาหรบการเปนตวแทนทศนยมบรรจระบไวขางตน X ระบจำานวนของตวเลขทเปนตวแทนและ W มจำานวนไบต สำาหรบ PIC S9 (X) บรรจทศนยม W มceil ((x 1) / 2) . สำาหรบ PIC 9 (X) บรรจทศนยม W มceil (x / 2) . ตวอยางเชน PIC S9 (5) บรรจทศนยมเปนตวเลขหาหลก ถาสญญาณรวม Nibbles หกมความจำาเปน ceil ((5 +1) / 2) มความยาวสามไบตและความคมคาของ W คอ 3

โปรดทราบวาคณสามารถใชแทน COMP-3 สำาหรบบรรจทศนยม ไอบเอมในภาษาประกอบ สง P บงชทศนยมบรรจและคำาสง Z บงชทศนยมโลโก ตอไปนแสดงใหเหนถงขอความทตดตอนมาจากรายการของภาษาประกอบแสดงใหเหนถงการชดเชย

offset value (in hex) inst label directive

+000000 00001C 2 PEX1 DC PL3'1' +000003 00001D 3 PEX2 DC PL3'-1'+000006 F0F0C1 4 ZEX1 DC

ZL3'1'

Page 22: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

22

+000009 F0F0D1 5 ZEX2 DC ZL3'1'

ใน PL / I, แอตทรบวตทศนยมถาวรถกนำามาใชรวมกบขอมลทศนยมบรรจ คณตองใชสเปคภาพทจะเปนตวแทนขอมลทศนยมโลโก ไมมการแสดงมาตรฐานของขอมลทศนยมสำาหรบ Fortran หรอภาษา C สรปสาระสำาคญของบรรจกลองรปแบบทศนยมทศนยมและโลโกและ Informats

SAS ใชกลมของรปแบบและ informats ในการจดการขอมลทศนยมบรรจและโลโก ตารางตอไปนแสดงชนดของการแสดงขอมลสำาหรบรปแบบเหลานและ informats โปรดทราบวารปแบบและ informats ทขนตนดวย S370 หมายถงการเปนตวแทนเมนเฟรมของไอบเอม

จดรปแบบ

ชนดของขอมล

Informat ทสอดคลองกน

ความเหน

PD ทศนยมบรรจกลอง

PD ทองถนลงสนามทศนยมบรรจ

PK ทศนยมบรรจกลอง

PK ทศนยมบรรจนรนาม; ไมใชเฉพาะกบสภาพแวดลอมการทำางานของคณ

ZD ทศนยมโลโก ZD ทศนยมโลโกทอฝถนไม ทศนยมโลโก ZDB แปล EBCDIC วาง (x'40

') เพอ EBCDIC ศนย (x'F0') แลวสอดคลองกบ informat ทศนยมโลโก

ไม ทศนยมโลโก ZDV ไมไอบเอมโลโกทศนยมS370FPD

ทศนยมบรรจกลอง

S370FPD ลาสดแทะ C (บวก) หรอ D (ลบ)

S370F ทศนยม S370FPDU แทะลาสดเสมอ F(บวก)

Page 23: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

23

PDU บรรจกลองจดรปแบบ

ชนดของขอมล

Informat ทสอดคลองกน

ความเหน

S370FZD

ทศนยมโลโก S370FZD ไบตลาสดมสญญาณในแทะบน: C

(บวก) หรอ D (ลบ)S370FZDU

ทศนยมโลโก S370FZDU ตอดปาย F:นรนาม

S370FZDL

ทศนยมโลโก S370FZDL ลงชอเขาสระบบแทะในไบตแรกใน informat; ไบตปายแยกชนนำาของ x'C0 '(บวก) หรอ x'D0' (ลบ) ในรปแบบ

S370FZDS

ทศนยมโลโก S370FZDS ปายชนนำาของ-(x’60’)หรอ(x’4t')

S370FZDT

ทศนยมโลโก S370FZDT ปายทายของ - (x'60 ') หรอ (x'4E')

PDJULI ทศนยมบรรจกลอง

PDJULI วนทจเลยนในการเปนตวแทนบรรจไอบเอมคำานวณ

PDJULG

ทศนยมบรรจกลอง

PDJULG วนทจเลยนในการเปนตวแทนบรรจ เกรกอเรยน–การคำานวณ

ไม ทศนยมบรรจกลอง

RMFDUR รปแบบอนพต คอ : mmssttt F

ไม ทศนยมบรรจกลอง

SHRSTAMP รปแบบอนพตคอ: yyyyddd F

Page 24: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

24

hhmmssth ทyyyyddd F เปนวนทจเลยนบรรจ; ปเปนปท 0 ตามจาก 1900

ไม ทศนยมบรรจกลอง

SMFSTAMP

รปแบบอนพต คอ : xxxxxxxxyyyyddd F ท yyyy ddd F เปนวนทจเลยนบรรจ;ปเปน 0 ตาม จาก 1900

ไม ทศนยมบรรจกลอง

PDTIME รปแบบอนพตคอ: 0 HHMMSS F

การแปลงขอมลและการเขารหส

การเขารหสอกขระแตละตวในลกษณะการตงคาการแสดงตวเลขทไมซำากน มผลในตารางของจดรหสทงหมด มการแสดงตวเลขทแตกตางกนในการเขารหสทแตกตางกน ตวอยางเชนการเขารหส ASCII สำาหรบ สญลกษณ ดอลลา $ คอ 24hex การเขารหส EBCDIC เดนมารก สญลกษณ ดอลลา$ คอ 67hex ใน การสงซอสำาหรบ SAS ทปกต ใช ASCII ทจะถก แปลความหมายของชด ขอมลท มการเขารหสใน Danish

Page 25: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

25

EBCDIC ขอมลจะตองถกแปลงเปนกระบวนการของการยายขอมลจากทหนงไปยงอกทหนง การเขารหส เมอแปลงเครองหมายดอลลารASCII ถง

เครองหมายดอลลาร Danish EBCDIC แทน เลขฐานสบหก สำาหรบ ตวอกษร ทถกแปลง จาก 24 คาไป 67

ขนตอนการเขารหสของโดยเฉพาะอยางยง ชด ขอมล SAS คอสำาหรบ SAS 9 และ ขางตน

1. คนหาขอมลทตง SAS

2. คลกขวาทชดขอมล

3. คณสมบตจากเมน

4. ทแทบรายละเอยด

5. เขารหสของขอมลทกำาหนดอยในรายการ พรอมกบขอมล อน ๆ

6. บางสถานการณทขอมลอาจจะถกแปลง โดยทวไป มดงน

1. เมอคณแบงปนขอมลระหวางสองชวง SAS ทแตกตางกนทกำาลงทำางานในสถานท แตกตางกนหรอ ในสภาพแวดลอมการดำาเนนงานทแตกตางกน

2. เมอคณดำาเนนการ เชนการแปลง เปนตวพมพใหญ หรอ ตวพมพเลก

3. เมอคณแสดงหรอพมพ ตวอกษรจาก ภาษาอน

4. เมอคณคดลอก และวางขอมลระหวางการทำางานในสถานททแตกตางกนสำาหรบ ขอมลเพมเตมเกยวกบ SAS คณสมบตทออกแบบมาเพอ

จดการกบการแปลงขอมลจากการเขารหสทแตกตางกนหรอสภาพ

Page 26: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

26

แวดลอมในการดำาเนนงาน ด SAS สนบสนน ภาษา แหงชาต ( NLS ) : คมอการใชงาน

ฟงกชนและการเรยกชดคำาสง

ความหมายของฟงกชนและการเรยกชดคำาสงความหมายของฟงกชน

ฟงกชนของ SAS ดำาเนนการคำานวณหรอการจดการระบบในขอขดแยงและสงกลบคา การทำางานสวนใหญใชขอขดแยงของผใชงาน แตมจำานวนผใชไมมากทไดรบจากสภาพแวดลอมการทำางานในซอฟแวรฐาน SAS คณสามารถใชฟงกชนของ SAS ในขนตอนการสรางขอมล ในการสงผานขอมลของ WHERE ในภาษาทผใชเขยนขนเอง ใน PROC REPORT และในโครงสรางภาษาตอบคำาถาม (SQL)บางขนตอนทางสถตใชฟงกชนของ SAS ดวย และมากกวานน SAS ซอฟแวรอนทสามารถใชในขนตอนการสรางขอมล อางถงการเตรยมเอกสารทเปนของ SAS ซอฟแวร ทใชในขอมลเพมเตมของฟงกชนเหลานความหมายของการเรยกชดคำาสงการเรยกชดคำาสงปรบเปลยนคาของตวแปรหรอสรางระบบฟงกชนอนๆ การเรยกชดคำาสงกเหมอนฟงกชน แตคณไมสามารถใชมนในงานทไดรบหมอบหมายไดชดคำาสงของ SAS ทงหมดนน ถกอางกบการเรยก นนกคอ ชอของชดคำาสงตองปรากฏหลงคยเวรดในการเรยก

ไวยากรณของฟงกชนและการเรยกชดคำาสง

Page 27: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

27

ไวยากรณของฟงกชนไวยากรณของฟงกชน คอfunction-name (argument-1<...,argument-n>)

function-name (OF variable-list)

function-name (OF array-name{*})

นคอคำาอธบายของไวยากรณ:ฟงกชน-ชอ ชอฟงกชนขอขดแยง สามารถเปนตวแปร คาคงท หรอชอของ SAS รวมถงฟงกชนอนๆ ประเภทและขอขดแยงท SAS อนญาตจะถกอธบายไวกบฟงกชนสวนบคคลและหลายๆขอขดแยงจะใชคอมมาTip: ถาจำานวนขอขดแยงใชไมได (เชน หายหรออยนอกขอบเขตทกำาหนด) SAS กจะเขยนไปยง log เพอแสดงใหเหนวาขอขดแยงใชงานไมได เซต _ERROR_ to 1 และผลลพธจำานวนทหายไปตวอยาง:

x=max(cash,credit); x=sqrt(1500); NewCity=left(upcase(City)); x=min(YearTemperature-July,YearTemperature-

Dec); s=repeat('----+',16); x=min((enroll-drop),(enroll-fail)); dollars=int(cash); if sum(cash,credit)>1000 then put 'Goal reached';

ตวแปร-รายการ

Page 28: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

28

สามารถเปนฟอรมใดกไดในรายการของ SAS รวมถงชอตวแปรสวนบคคล ถามมากกวา 1 ตวแปร ปรากฏตองแยกดวย ชองวางหรอคอมมา และ OFตวอยาง:

a=sum(of x y z); 2 ตวอยางเทากน

o a=sum(of x1-x10 y1-y10 z1-z10);o a=sum(of x1-x10, of y1-y10, of z1-z10);

z=sum(of y1-y10);

การจดเรยง-ชอ {*} ชอถกกำาหนดดวยการจดเรยง การระบการจดเรยงในทน ทำาให SAS มผลตอการจดเรยงไมเปนรายการของตวแปร แทนทจะดำาเนนการกบสมาชกเพยงตวเดยวตวอยาง:

array y{10} y1-y10; x=sum(of y{*});

ไวยากรณของการเรยกชดคำาสงไวยากรณของการเรยกชดคำาสงคอ: CALL routine-name (argument-1<, ... argument-n>); CALL routine-name (OF variable-list); CALL routine-name (argument-1 | OF variable-list-1 <, ...argument-n | OF variable-list-n>);นคอคำาอธบายของไวยากรณชดคำาสง-ชอ ชอเรยกชดคำาสงของ SASขอขดแยง

Page 29: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

29

สามารถเปนตวแปร คาคงท ชอจากภายนอก การอางอง การจดลำาดบหรอฟงกชน ขอขดแยงหลายๆขอถกแยกดวยคอมมา ตวเลขและชนดขอขดแยงนนถกอนญาตและอธบายดวยการเรยกชดคำาสงสวนบคคลในภาษา SASตวอยาง:

call rxsubstr(rx,string,position); call set(dsid); call ranbin(Seed_1,n,p,X1); call label(abc{j},lab);

ตวแปร-รายการ สามารถเปนฟอรมใดกไดในรายการของ SAS รวมถงชอตวแปรสวนบคคล ถามมากกวา 1 ตวแปร ปรากฏตองแยกดวย ชองวางหรอคอมมา และ OF

การใชฟงกชนขอจำากดบนฟงกชนขอขดแยงถาคาของขอขดแยงใชไมได SAS จะพมพขอความผดพลาดและจะเซตผลลพธไปยงคาทหายไป นคอการควบคมปกตของฟงกชนขอขดแยง

บางฟงกชนใหขอขดแยงถกยบยงภายในขอบเขตทแนนอน เชน ขอขดแยงของ Log ตองมากกวา 0

ฟงกชนสวนใหญจะไมยอมรบคาทหายไปวาเปนขอขดแยง ยกเวน สถตพรรณนาและฟงกชนทางการเงน

ปกตขอขดแยงถกอนญาตนนจะเปนหลกการ เชน ฟงกชน EXP บางฟงกชนทเปนไปได จะเปนการรวมของคาสดโตงททำาใหเกด

ปญหาฟงกชนของสถตพรรณนาSAS สรางฟงกชนทคนคาสถตพรรณนา ยกเวนฟงกชนทหายไป คอฟงกชนทกอใหเกดการผลตทางสถตโดย MEANS วธการคำานวณแตละสถตถกแลกเปลยนในขนตอนการสรางสถตเบองตนโดย SAS ในการ

Page 30: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

30

แนะนำาขนตอนพนฐานของ SAS ไดคำานวณสถตพรรณนาสำาหรบคาทไมไดหายไปของขอขดแยงฟงกชนทางการเงนSAS สรางกลมของฟงกชนทใชในการคำานวณทางการเงน มนถกจดกลมดงน:

ชนดของฟงกชนทางการเงนชนดของฟงกชน ฟงกชน คำาอธบายกระแสเงนสด CONVX,

CONVXPคำานวณสำาหรบงบกระแสเงนสด

DUR, DURP

คำานวณระยะเวลาในการปรบเปลยนสำาหรบกระแสเงนสด

PVP, YIELDP

คำานวณมลคาปจจบนและอตราผลตอบแทนจนครบกำาหนดสำาหรบระยะกระแสเงนสด

การคำานวณคา COMPOUND

คำานวณคาดอกเบยทบตน

MORT คำานวณการผอนชำาระหนอตราผลตอบแทนภายใน

INTRR, IRR

คำานวณอตราผลตอบแทนภายใน

มลคาปจจบนและอนาคตสทธ

NETPV, NPV

คำานวณคาปจจบนและอนาคตสทธ

SAVING คำานวณมลคาในอนาคตเปนระยะคาเสอมราคา DACCxx คำานวณคาเสอมราคาสะสมถงระยะเวลาท

กำาหนดDEPxxx คำานวณคาเสอมราคาสำาหรบชวงเวลา

เดยว

ขอพจารณาพเศษของฟงกชนการเสอมราคา

Page 31: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

31

ขอขดแยงระยะเวลาสำาหรบการทำางานของคาเสอมราคาทสามารถเปนเศษสวนสำาหรบทกฟงกชนยกเวน DEPDBSL และ DACCDBSL สำาหรบขอขดแยงเศษสวนคาเสอมราคาเปนตามสดสวนระหวางสองชวงเวลาตามลำาดบ

ขอควรระวง: ตรวจสอบวธการคดคาเสอมราคาสำาหรบชวงเวลาทเปนเศษสวน คณตองตรวจสอบวาวธการนมความเหมาะสมทจะใชกบระยะเวลาทเปนเศษสวนเพราะตารางคาเสอมราคาจำานวนมากตามทระบไวในตารางมกฎพเศษสำาหรบชวงเวลาทเปนเศษสวน

การใชขนตอนการสรางขอมลในฟงกชนทเขยนขนเองฟงกชนทเขยนขนเองสามารถเรยกวาขนตอนการสรางขอมล เพอ

สรางขอความในคณสมบต %SYSFUNC และ %QSYSFUNC มความแตกตาง%QSYSFUNC มคณสมบตพเศษและเทคนคชวยจำา และ%SYSFUNC ไมม ขอมลสวนมากในฟงกชนเหลานจะมองเหน%SYSFUNC และ %QSYSFUNC ในภาษา SAS ทเขยนขนเอง: อางอง%SYSFUNC เปนขอขดแยงทมการสรางขอมลขนตอนเดยวและมรปแบบทางเลอกดงตอไปน:%sysfunc(date(),worddate.)%sysfunc(attrn(&dsid,NOBS))คณไมสามารถจดเรยงขนตอนของขอมลภายใน %SYSFUNC อยางไรกตามคณสามารถเรยกขนตอนการเกบขอมล ตวอยางคอ:%sysfunc(compress(%sysfunc(getoption(sasautos)), %str(%)%(%')));

Page 32: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

32

ขอขดแยงทงหมดในขนตอนการสรางขอมลใน%SYSFUNC แยกดวยคอมมา คณไมสามารถใชขอขดแยงทสรางดวย OFเพราะ%SYSFUNC เปนฟงกชนทเขยนดวยผใช คณไมตองใช “__” เหมอนในขนตอนการสรางขอมล เชน ขอขดแยงทเปดฟงกชนจะถกใชดวย “__” เมอใชฟงกชนอนเดยว แตขอขดแยงไมใช “__”เมอใชใน%SYSFUNCdsid=open("sasuser.houses","i");dsid=open("&mydata","&mode");%let dsid=%sysfunc(open(sasuser.houses,i));%let dsid=%sysfunc(open(&mydata,&mode));คณสามารถใชฟงกชนเหลานเรยกขอมลทงหมดของ SAS ยกเวนผทเกยวของกบขอมลหรอตวแปรในขนประมวลผล ฟงกชนเหลานไมไดรบอนญาต คอ DIF, DIM, HBOUND, INPUT, IORCMSG, LAG, LBOUND, MISSING, PUT, RESOLVE, SYMGET และทกฟงกชนขอมลตวแปร (เชน VLABEL)

การใชฟงกชนในการจดการไฟล SAS จดการไฟลในรปแบบทแตกตางกน ขนอยกบวาคณอยกบวาคณใชฟงกชนหรอคำาสง ถาคณใชฟงกชน เชน FOPEN, FGET, และ FCLOSE, คณสามารถตรวจสอบและจดการขอมลไดมากกวาเมอคณใชคำาสง INFILE, INPUT, และ PUTเมอคณใชไฟลภายนอก ฟงกชน FOPEN จดสรรชวคราว ทเรยกวา แฟมขอมลชวคราว (FDB) และเปดแฟมภายนอกสำาหรบการอานหรอการปรบปรง ฟงกชน FREAD ใชอานขอมลแฟมภายนอกและคดลอกขอมลลง ฟงกชน FDB FGET จะยายขอมลไปยงขอมลทเปนตวแปร ฟงกชนจะสงกลบคาทคณสามารถตรวจสอบกบคำาสงหรอฟงกชนอนๆในขนตอนการสรางขอมล เพอกำาหนดวธประมวลขอมลของคณหลงจากทบนทกผลการประมวล ฟงกชน FWRIT เขยนเนอหาของ FDB ไปยงแฟมภายนอกและ FCLOSE เพอปดไฟล

Page 33: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

33

เมอคณใชชดขอมล SAS ฟงกชน OPEN เพอเปดขอมล ฟงกชน FETCH และ FETCHOBS ใชอานคาสงเกตทเปดจากขอมลใน SAS สชดขอมลใยขอมลเวกเตอร (DDV) ฟงกชน GETVARC และ GETVARN ใชยายขอมลไปยงขนตอนการสรางตวแปร ฟงกชนกลบคาทคณสามารถตรวจสอบกบคำาสงหรอฟงกชนอนๆในขนตอนการสรางขอมล เพอกำาหนดวธทคณตองการทจะประมวลผลขอมลของคณ หลงจากขอมลประมวลผลฟงกชน ฟงกชน CLOSE ใชในการปดขอมล สำาหรบคำาอธบายทสมบรณและตวอยางสามารถดไดจากฟงกชนและการเรยกชดคำาสงใน SAS อางอง: พจนานกรม

การใชฟงกชนเลขสมและการเรยกชดคำาสง

คาเรมตน

การใชฟงกชนเลขสมและการเรยกชดคำาสง การสรางเลขสมจากจดเรมตนเรยกวา คาเรมตน ผใชหรออปกรณคอมพวเตอรจะตองเปนฯจำานวนเตมทไมตดลบทขอมลนอยกวา 231-1 (or 2,147,483,647) ถาคณใชบวกกนกสามารถทำาซำาของตวเลขสมโดยใชขนตอนขอมลเดยวกน ถาคณใชศนย คอมพวเตอรทำาการเรมตนกระแสขอมลของตวเลขสมไมไดจำาลองแบบแตละฟงกชนเลขสมและการเรยกชดคำาสง สรางตวเลขสมจำาลองจากการแจกแจงทางสถตทเฉพาะเจาะจง ทกฟงกชนเลขสมตองระบคาเรมตน ทคงทหรอตวแปรทมคาคงทจำานวนเตม ทกๆการเรยกชดคำาสงเรยกตวแปรคาเรมตน นอกจากนทกๆการเรยกชดคำาสงตองใชกบตวแปรทมตวเลขสมสรางขนคาเรมตนจะตองดำาเนนการครงแรกของการทำางานหรอการเรยกชดคำาสง หลงจากการดำาเนนการของฟงกชนแตละคาเรมตนในปจจบนมการปรบปรงภายใน แตละขอขดแยงของคาเรมตนยงคงไมเปลยนแปลงหลงจากทำาซำาในการเรยกชดคำาสง อยางไรกตามตวแปรเรมตน มคาเรมตนท

Page 34: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

34

เปนปจจบนในการสรางจำานวนสมตอไปดวยฟงกชน เปนไปไมไดทจะควบคมคาเรมตนและดงนนเปนตวเลขสมหลงจากการเตรยม

เปรยบเทยบของฟงกชนเลขสมและการเรยกชดคำาสงขอยกเวนสำาหรบฟงกชน NORMAL และ UNIFORM เทยบกบ

ฟงกชน RANNOR และ RANUNI ตามลำาดบ SAS จดเตรยมการเรยกชดคำาสงเหมอนเลขสม ใชการเรยกชดคำาสงควบคมมากกวา คาเรมตนกบการเรยกชดคำาสง คณสามารถสรางไดหลายอยางของตวเลขสมภายในขนตอนขอมลเดยวกน ถาคณใสคาเรมตนตางกน ในการเรมตนของคาเรมตนของตวแปรสมทสรางขนมความเปนอสระกนดวยฟงกชน แตไมสามารถสรางมากกวา 1 ขอมล โยจดหาคาเรมตนหลายคาภายในขนตอนการสรางขอมล ทงสองตวอยางแสดลใหเหนความแตกตางตวอยางท 1: การสรางกระแสขอมลหลายจากการเรยกชดคำาสงตวอยางนใชการเรยก RANUNI เพอสราง 3 สายของตวเลขสมจากการแจกแจงแบบเอกรปดวย 10 ตวเลข ทำาใหเหนผลการเรยกชดคำาสง ตวอยางเชนoptions nodate pageno=1 linesize=80 pagesize=60;

data multiple(drop=i); retain Seed_1 1298573062 Seed_2 447801538 Seed_3 631280; do i=1 to 10; call ranuni (Seed_1,X1); call ranuni (Seed_2,X2); call ranuni (Seed_3,X3); output; end; run;

proc print data=multiple; title 'Multiple Streams from a CALL Routine'; run;

ตวอยางการเรยกชดคำาสง:Multiple Streams from a CALL Routine 1

Page 35: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

35

Obs Seed_1 Seed_2 Seed_3 X1 X2 X3

1 1394231558 512727191 367385659 0.64924 0.23876 0.17108 2 1921384255 1857602268 1297973981 0.89471 0.86501 0.60442 3 902955627 422181009 188867073 0.42047 0.19659 0.08795 4 440711467 761747298 379789529 0.20522 0.35472 0.17685 5 1044485023 1703172173 591320717 0.48638 0.79310 0.27536 6 2136205611 2077746915 870485645 0.99475 0.96753 0.40535 7 1028417321 1800207034 1916469763 0.47889 0.83829 0.89243 8 1163276804 473335603 753297438 0.54169 0.22041 0.35078 9 176629027 1114889939 2089210809 0.08225 0.51916 0.97286 10 1587189112 399894790 284959446 0.73909 0.18622 0.13269

ตวอยางท 2 การกำาหนดคาจากกระแสเดยวและหลายตวแปรใชคาเรมตนทง 3 ทไดมาจากตวอยางท 1 ตวอยางนใชฟงกชนในการสรางทง 3 ตวแปร ผลทไดจะแตกตางจากตวอยางท 1 เนองจากคาตวแปรทง 3 ถกสรางโดยคาเรมตนแรก เมอคณใชฟงกชนทเขยนขนเองมากกวา 1 ครงในขนตอนการสรางขอมลทฟงกชนจะยอมรบเฉพาะคาเรมตนคาแรก ทคณไมไดจดหาและสวนทเหลอoptions nodate pageno=1 linesize=80 pagesize=60;

data single(drop=i); do i=1 to 3; Y1=ranuni(1298573062); Y2=ranuni(447801538); Y3=ranuni(631280); output; end; run;

proc print data=single; title 'A Single Stream across Multiple Variables'; run;

Page 36: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

36

ผลลพธตอไปนแสดงเหนถงคาของ Y1, Y2, และ Y3 ในตวอยางนมาจากการสมเลขเดยวทเกดกากคาเรมตน คณสามารถดไดโดยการเปรยบเทยบจากคาสงเกตทง 3 ตวแปรทมคาของ X1 ในตวอยางฟงกชนตวอยางฟงกชน

A Single Stream across Multiple Variables 1

Obs Y1 Y2 Y3

1 0.64924 0.89471 0.42047 2 0.20522 0.48638 0.99475 3 0.47889 0.54169 0.08225

จบครปแบบใช SAS Regular Expression (RX) และ Perl Regular Expression (PRX) ความหมายของการจบครปแบบและ Regular Expression

จบครปแบบชวยใหคณสามารถหาและดงรปแบบการจบคหลายคจากตวอกษรในขนตอนเดยว เชนเดยวกบการแทนในหลายสายในขนตอนเดยว ขนตอนสรางขอมลสนบสนน 2 ชนดของการจบคและการเรยกชดคำาสง

SAS regular expressions (RX) Perl regular expressions (PRX).

Regular Expression เปนรปแบบภาษาทมเครองมอทรวดเรวสำาหรบการแยกขอมลจำานวนมาก ประกอบดวยอกษรและอกขระพเศษทเรยกวา metacharactersเครองหมายดอกจน (*) และเครองหมายคำาถาม (?) เปนสองตวอยางของ metacharacters ดอกจน (*) ตรงกบศนยหรอมากกวาตวอกษรและเครองหมายคำาถาม (?) ตรงกบหนงหรอศนยอกขระ ตวอยางเชนถาคณออกขอมล ls *. คำาสง txt จากยนกซขอความแจงของเชลล, UNIX จะแสดงไฟลทงหมดในไดเรกทอรปจจบนทขนตนดวยตวอกษร "ขอมล" และจบดวยนามสกลไฟล "txt"เครองหมายดอกจน (*) และเครองหมายคำาถาม (?) มจำากดรปแบบ Regular expressions Perl regular expressions สราง

Page 37: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

37

เครองหมายดอกจนและเครองหมายคำาถามทจะทำาใหการคนหามประสทธภาพมากขนและมความยดหยน

ความหมายของ SAS Regular Expression (RX) Functions และการเรยกชดคำาสง SAS Regular Expression (RX) Functions และการเรยกชดคำาสงหมายถงกลมของฟงกชนและการเรยกชดคำาสงทใชรปแบบการแสดงออกของ SAS ปกตการจบคเพอแยกสตรงตวอกษร คณสามารถคนหาสตรงตวอกษรทมรปแบบเฉพาะทคณระบและเปลยน substring ตรงกบอกขระยอยทแตกตางกนSAS regular expressions ประกอบดวย RXCHANGE, CALL RXFREE, CALL RXSUBSTR, RXMATCH และ RXPARSE และเปนสวนหนงของสตรงอกขระประเภทการจบคสำาหรบการทำางานและการปฏบต CALL สำาหรบขอมลเพมเตมเกยวกบฟงกชนเหลานและการเรยกชดคำาสงดอางอง SAS ภาษา: พจนานกรม

ความหมายของ Perl Regular Expression (PRX) และการเรยกชดคำาสง Perl Regular Expression (PRX) และการเรยกชดคำาสง หมายถงกลมของฟงกชนและการปฏบต CALL ทใชแกไขรน Perl เปนภาษาทตรงกบรปแบบเพอแยกสตรงตวอกษร ฟงกชน PRX ชวยใหคณสามารถทำาตอไปน:คนหาสำาหรบรปแบบของตวอกษรภายในสตรงแยกยอยจากสตรงคนหาและแทนทขอความทมขอความอน ๆแยกขอความจำานวนมากเชนบนทกการใชเวบหรอขอมลทเปนขอความอน ๆ ไดอยางรวดเรวกวาดวย SAS regular expressions.Perl Regular Expression (PRX)ประกอบดวย PRXCHANGE, CALL PRXDEBUG, CALL PRXFREE, CALL PRXNEXT, CALL

Page 38: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

38

PRXPOSN, CALL PRXSUBSTR, PRXPAREN, PRXMATCH และ PRXPARSE และเปนสวนหนงของสตรงอกขระประเภทการจบคสำาหรบการทำางานและการเรยกชดคำาสง สำาหรบขอมลเพมเตมเกยวกบฟงกชนเหลานและการเรยกชดคำาสง ดอางอง SAS ภาษา: พจนานกรม

ประโยชนของการใช Perl Regular Expressions ในขนตอนการสรางขอมล ใช Perl Regular Expressions ในขนตอนขอมลชวยเพมตวเลอกการคนหาและแทนทในขอความ คณสามารถใช Perl Regular Expressions ทจะทำาตอไปน:ตรวจสอบขอมลแทนทขอความแยกยอยจากสตรงเขยนแกปญหาสงออก Perl ลงใน SAS logคณสามารถเขยนโปรแกรม SAS ทไมใช regular expressions จะใหผลลพธทเดยวกบทคณทำาเมอคณใช Perl Regular Expressions รหสไมแสดงออกปกต แตตองมสายงานทจะจดการกบตำาแหนงตวอกษรในสตรงและในการจดการกบชนสวนของสตรงPerl Regular Expressions รวมมากทสดหากไมไดทงหมดของขนตอนเหลานเปนหนงในการแสดงออกรหสผลมขอดดงตอไปนนอยแนวโนมทจะเกดขอผดพลาดงายตอการรกษาทชดเจนในการอานมประสทธภาพมากขนในแงของการปรบปรงประสทธภาพของระบบ

ใช Perl Regular Expressions ในขนตอนการสรางขอมล ขอตกลงใบอนญาต–

Page 39: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

39

ยอหนา ตอไปน สอดคลองกบ สวนท 3 (ก) และ 4 ( ค) ของการอนญาต:ฟงกชน PRX ใชรน แกไขของ Perl 5.6.1 เพอดำาเนนการ รวบรวม การแสดงออกปกต และการจบค Perl จะรวบรวม เปนหองสมดสำาหรบใชกบ SAS การแกไข และเปนตนฉบบ Perl 5.6.1 ไฟล อสระทมอย จากเวบไซตSAS.ท http://support.sas.com/rnd/base แตละไฟล ทมการแกไข ม บลอก ความคดเหนทดานบนของ ไฟล อธบายถงวธการและเมอ ไฟลถกเปลยน executables ไดรบ ไมไดมาตรฐาน ชอ Perl รนมาตรฐาน ของ Perl สามารถไดรบจาก http://www.perl.comเฉพาะ Perl Regular Expressions สามารถเขาถงไดจาก ฟงกชน PRX สวนอน ๆ ของภาษา Perl ไมสามารถเขาถงได รนลาสด ของ นพจนปกต Perl ไมสนบสนน ตอไปน:

ตวแปร Perlนพจนปกต ตวเลอก c / / g และ / o และตวเลอก e / แทน ดวยชอสญลกษณ ทใช\ N ท ชอ { } ไวยากรณmetacharacters\ pp, \ PP และ \ X.รนโคด Perl ภายใน นพจนปกต ซงรวมถง ไวยากรณ (? รหส { }), ( ? {รหส }) และ ( p { รหส })จบครปแบบ Unicodeใช ? แบบ ? ? metacharacter ไดรบการปฏบต เชนเดยวกบการแสดงออกของ การเรมตน และจดสนสด ประจำา ตวคนmetacharacter \ Gความเหน Perl ระหวาง รปแบบและ ขอความทใชแทนท ตวอยางเชน: { s } # regexp ความคดเหน Perl { เปลยน }

Page 40: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

40

backslashes จบคกบ m / \ \ \ \ / แทน m / \ \ / ควรจะใช เพอใหตรงกบ เครองหมายทบขวาไวยากรณของ Perl Regular Expressions Perl Regular Expressions จะประกอบดวยตวอกษรและอกขระพเศษทเรยกวา metacharacters เมอทำาการจบค, SAS คนหาสตรงแหลงทมาสำาหรบการยอยทตรงกบการแสดงออกปกต Perl ทคณระบ การใช metacharacters ชวยให SAS ในการดำาเนนการเปนพเศษเมอการคนหาสำาหรบการจบค:ถาคณใช metacharacter \ D, SAS ตรงกบหลกระหวาง 0-9ถาคณใช / \ dt / SAS พบวาตวเลขในสตรง "Raleigh, NC 27506"ถาคณใช / world / SAS พบ “world " ในสตรง "Hello world!"ตารางตอไปนประกอบดวยรายชอของ Perl metacharacters นพจนปกตทคณสามารถใชเมอคณสรางรหสของคณ คณสามารถคนหารายการทสมบรณของ metacharacters ดงตอไปนหนาคน Perl ท http://www.perldoc.com/perl5.6.1/pod/perlre.html

เครองหมายพเศษ

คำาอธบาย

\ เครองหมายตวอกษรถดไปเปนทงอกขระพเศษ, ตวอกษร, อางองกลบหรอ octal escape:n "" ตรงกบตวอกษร "n""\ n" ตรงกบตวอกษรสายใหม"\ \" การจบคกบ "\""\ ("การจบคกบ "("

| ระบหรอเงอนไขเมอคณเปรยบเทยบสตรงตวอกษรและตวเลข

เครองหมายพเศษ

คำาอธบาย

^ ตรงกบตำาแหนงทจดเรมตน

Page 41: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

41

$ ตรงกบตำาแหนงทสวนทาย* ตรงกบ sub expression กอนหนาศนยหรอ

มากกวา 1 ครง:zo * ตรงกบ "z" และ "zoo"* เทยบเทากบ {0}

+ ตรงกบ sub expression กอนหนานหนงครงหรอมากกวา:"zo +" จบคกบ"zo" และ "Zoo""zo +" ไมตรง "z"+ เทยบเทากบ {1}

? ตรงกบศนย sub expression กอนหนานหรอครงหนง:"Do (es)?" ตรงกบ "ทำา" ใน "ทำา" หรอ "ไม"? เทยบเทากบ {0,1}

{n} n คอจำานวนเตมทไมเปนลบทตรงกบ n ครงวา:"o {2}" ตรงกบทงสองของ o ใน "food"

"o {2}" ไมตรง "o" ใน "Bob"{n,} n คอจำานวนเตมทไมเปนลบทตรงกบ n ครงหรอ

มากกวา:"o {2}" ตรงกบทงหมดของ o ใน "foooood""o {2}" ไมตรง "o" ใน "Bob""o {1}" เทยบเทากบ "o +""o {0,}" เทยบเทากบ "o *"

{n,m} n และ m เปนจำานวนเตมไมเปนลบท n <= m พวกเขาตรง n อยางนอยและเวลาท m มากทสด:"o {1,3}" ตรงกบครงแรกทสามของ o ใน "Fooooood""o {0,1}" เทยบเทากบ "o"

Page 42: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

42

หมายเหต: คณไมสามารถใสชองวางระหวางเครองหมายจลภาคและตวเลข

period (.) ตรงกบตวอกษรตวเดยวยกเวนบรรทดใหม เพอใหตรงกบตวอกษรรวมทงบรรทดใหมใด ๆ ใหใชรปแบบเชน "[. \ n]"

(pattern) ตรงกบรปแบบและจบภาพการจบค เพอดงตำาแหนงและระยะเวลาของการแขงขนทถกจบใช CALL PRXPOSN เพอใหตรงกบตวอกษรวงเลบใช "\ (" หรอ "\)"

เครองหมายพเศษ

คำาอธบาย

x|y การจบคทง x หรอ y:"z |Food" ตรงกบ "z" หรอ "Food""(z | ฉ) อด" ตรงกบ "Zood" หรอ "อาหาร"

[xyz] ระบชดอกขระทตรงกบตวอกษรทปดลอม"[abc]" ตรงกบ "" in "plian"

[^xyz] ระบชดอกขระเชงลบทตรงกบตวละครทไมไดทปดลอม"[abc]" ตรงกบ "" in "plian"

[a-z] ระบชวงของอกขระทตรงกบตวอกษรใด ๆ ในชวง:"[az]" ตรงกบตวอกษรตวพมพเลกใด ๆ ในชวง "a"ถง "z"

[^a-z] ระบชวงของอกขระทไมตรงกบตวอกษรอยในชวงใด ๆ :"[^ az]" ตรงกบตวอกษรทไมไดอยในชวง "a" ถง "z" ใด ๆ

\b ตรงกบขอบเขตคำา (ตำาแหนงระหวางคำาและพนท):"er\b" ตรงกบ "er" in "never""er\b" ไมตรงกบ "er" in "verb"

\B ตรงกบขอบเขตทไมคำา:

Page 43: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

43

"er\b" ตรงกบ "er" in " verb ""er\b" ไมตรงกบ "er" in "neve"

\d ตรงกบตวอกษรหลกทเทยบเทา [0-9]\D ตรงกบอกขระทไมใชหลกทเทยบเทากบ [^ 0-9]\s ตรงกบอกขระชองวางใด ๆ สขาวรวมทงพนทแทบ

เลอนฟอรมและอน ๆ และเทยบเทากบ [\f\n\r\t\v].\S ตรงกบตวอกษรทไมไดเปนอกขระชองวางสขาวใด ๆ

และเทยบเทากบ[\f\n\r\t\v].\t ตรงกบแถบตวอกษรและเทยบเทากบ "\ x09"\w ตรงกบตวอกษรคำาใด ๆ รวมทงขดและเทยบเทากบ

[A-Za-z0-9_]\W ตรงกบอกขระทไมใชคำาพดและเทยบเทากบ [^ A-Za-

z0-9_]\num ตรงกบหมายเลข ทหมายเลขเปนจำานวนเตมบวก นคอ

การอางองกลบไปตรงบนทก:"(.) \ 1" ตรงกบสองอกขระเหมอนกนตดตอกน

ตวอยางท 1 การตรวจสอบขอมล

คณสามารถทดสอบสำาหรบรปแบบของตวอกษรภายในแถว ตวอยางเชนคณสามารถตรวจสอบแถวเพอตรวจสอบวามนมหมายเลขโทรศพททจดรปแบบไดอยางถกตอง ชนดของการทดสอบนจะเรยกวาการตรวจสอบขอมล

ตวอยางตอไปนตรวจสอบรายการของหมายเลขโทรศพท การจะมความถกตองหมายเลขโทรศพทจะตองมหนงในรปแบบดงตอไปน (XXX) XXX-XXXX or XXX-XXX-XXXX. data _null_; if _N_ = 1 then do; paren = "\([2-9]\d\d\) ?[2-9]\d\d-\d\d\d\d"; dash = "[2-9]\d\d-[2-9]\d\d-\d\d\d\d"; regexp = "/(" || paren || ")|(" || dash || ")/";

Page 44: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

44

retain re; re = prxparse(regexp); if missing (re) then do; putlog "ERROR: Invalid regexp " regexp; stop; end; end; length first last home business $ 16; input first last home business; if ^prxmatch(re, home) then putlog "NOTE: Invalid home phone number for " first last home; if ^prxmatch(re, business) then putlog "NOTE: Invalid business phone number for " first last business; datalines; Jerome Johnson (919)319-1677 (919)846-2198 Romeo Montague 800-899-2164 360-973-6201 Imani Rashid (508)852-2146 (508)366-9821 Palinor Kent . 919-782-3199 Ruby Archuleta . . Takei Ito 7042982145. Tom Joad 209/963/2764 2099-66-8474 ; รายการตอไปนตรงกบสายทมหมายเลขในขนตอนขอมลทแสดงไวดานบน 1.สรางขนตอน ขอมล 

 2. สรางนพจนปกต Perl ในการระบ หมายเลขโทรศพททตรงกบ ( XXX ) xxx-xxxx และกำาหนด paren ตวแปร เพอเกบ ผล ใชองคประกอบ ไวยากรณ ตอไปนเพอ สรางนพจนปกต Perl :

\ (ตรงกบวงเลบ เปด ใน รหสพนท

[ 2-9 ] ตรงกบ ตวเลข 2-9 นเปน หมายเลขแรก ใน รหสพนท

\ d ตรงกบ หลก นเปน ตวเลขทสอง ใน รหสพนท

\ d ตรงกบ หลก นเปน ตวเลขทสาม ใน รหสพนท

\ ) ตรงกบวงเลบ ปด ใน รหสพนท

? ตรงกบ พนท(ซงเปน subexpression กอนหนาน ) เปนศนยหรอ หนงครง ในพนท ทมความสำาคญ ใน การแสดงออกปกต Perl พวกเขา ใหตรงกบ พนทใน ขอความทคณ กำาลงคนหา หากพนทนำาเครองหมายคำาถาม metacharacter ( เชนเดยวกบ ในกรณน) รปแบบตรงกบ ทง ศนย ชองวางหรอ พนทหนงท อยในตำาแหนง ใน หมายเลขโทรศพทน

Page 45: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

45

  3. สรางนพจนปกต Perl ในการระบ หมายเลขโทรศพททตรงกบ XXX -XXX -XXXX และกำาหนด DASH ตวแปร เพอเกบผล

 4. สรางนพจนปกต Perl เพอเชอม การแสดงออกปกต สำาหรบ (XXX) xxx-xxxx และ XXX - XXX - XXXX concatenation ชวยใหคณสามารถ คนหา หมายเลขโทรศพท ทงสอง รปแบบ จาก การแสดงออกไดปกต

วงเลบและ DASH เปนนพจนปกตจะถกวางไวในวงเลบ บาร metacharacter (|) ทตงอยระหวางวงเลบและ DASH สงคอมไพเลอรเพอใหตรงกบรปแบบ slashes รอบรปแบบบอกคอมไพเลอทเรมตนและสนสดของการแสดงออกปกต

ผานการแสดงออกปกต Perl เพอ PRXPARSE และรวบรวม การแสดงออก PRXPARSE สงกลบคากบรปแบบ ทรวบรวม ใชคาทม ฟงกชน อน ๆ Perl นพจนปกต และ การปฏบต CALL ชวยให เอสเอ ในการดำาเนนการ กบการแสดงออกปกต รวบรวม Perl

  5. ใชฟงกชน MISSING เพอตรวจสอบวาการแสดงออกปกต ไดรวบรวม และประสบความสำาเรจ

 6. ใชคำาสง PUTLOG ทจะเขยน ขอความขอผดพลาดในการเขาสระบบ SAS ถานพจนปกต ไมได รวบรวม 7. คนหาหมายเลขโทรศพท บาน ทถกตอง PRXMATCH ใชคาจาก PRXPARSE พรอมกบ ขอความ คนหาและสงกลบ ตำาแหนงทแสดงออกปกต ทพบใน การคนหาขอความ หากม ตรงกบหมายเลขโทรศพท บาน ไมม PUTLOG statement เขยน บนทกลงในบนทก SAS

 8. คนหาหมายเลข โทรศพทของธรกจ ทถกตอง PRXMATCH ใชคา จาก PRXPARSE พรอมกบ ขอความ คนหาและสงกลบ ตำาแหนงทแสดงออกปกต ทพบใน การคนหาขอความ หากม ตรงกบหมายเลข

Page 46: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

46

โทรศพท ธรกจไม คำาสง PUTLOG เขยน บนทกลงในบนทก SAS ตอไปนถกเขยนไปยง Log SAS:

NOTE: Invalid home phone number for Palinor Kent NOTE: Invalid home phone number for Ruby Archuleta NOTE: Invalid business phone number for Ruby Archuleta NOTE: Invalid home phone number for Takei Ito 7042982145NOTE: Invalid business phone number for Takei Ito NOTE: Invalid home phone number for Tom Joad 209/963/2764NOTE: Invalid business phone number for Tom Joad 2099-66-8474 ตวอยางท 2: การแทนทขอความ

คณสามารถใชนพจนปกต Perl เพอหาตวอกษรทเฉพาะเจาะจงภายในสตรง จากนนคณสามารถลบตวอกษรหรอแทนทพวกเขากบตวแบบอน ๆ ในตวอยางนทงสองเหตการณทเกดขนจากตวอกษรนอยกวา (<) จะถกแทนทดวย <และทงสองเหตการณทเกดขนจากตวแบบทใหญกวา (>) จะถกแทนทโดย>data _null_; if _N_ = 1 then do; retain lt_re gt_re; lt_re = prxparse('s/</&lt;/'); gt_re = prxparse('s/>/&gt;/'); if missing(lt_re) or missing(gt_re) then do; putlog "ERROR: Invalid regexp."; stop; end; end; input; call prxchange(lt_re, -1, _infile_); call prxchange(gt_re, -1, _infile_);

Page 47: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

47

put _infile_; datalines4; The bracketing construct ( ... ) creates capture buffers. To refer to the digit'th buffer use \<digit> within the match. Outside the match use "$" instead of "\". (The \<digit> notation works in certain circumstances outside the match. See the warning below about \1 vs $1 for details.) Referring back to another part of the match is called backreference.;;;;

รายการตอไปนจะตรงกบหมายเลขในขนตอนขอมลทแสดงไวดานบน

1. สรางขนตอน ขอมล2. สรางนพจนปกต Perl ในการระบ หมายเลขโทรศพททตรงกบ

( XXX ) xxx-xxxx และกำาหนด paren ตวแปร เพอเกบผล ใชองคประกอบ ไวยากรณ ตอไปนเพอ สรางนพจนปกต Perl :

\ ( ตรงกบวงเลบ เปด ใน รหสพนท.เปด วงเลบคอ จดเรมตน ของ submatch [ 2-9 ] ตรงกบ ตวเลข 2-9 นเปน หมายเลขแรก ใน รหสพนท\ d ตรงกบ หลก นเปน ตวเลขทสอง ใน รหสพนท \ d ตรงกบ หลก นเปน ตวเลขทสาม ใน รหสพนท \ ) ตรงกบวงเลบ ปด ใน รหสพนท วงเลบ ปด จดสนสด ของ submatch  ? ตรงกบ พนท(ซงเปน subexpression กอนหนาน ) เปนศนยหรอ หนงครง พนท ทมความสำาคญ ใน การแสดงออกปกต Perl พวกเขา ใหตรงกบ พนทใน ขอความทคณ กำาลงคนหา หากพนทนำาเครองหมายคำาถาม metacharacter ( เชนเดยวกบ ในกรณน) รปแบบตรงกบ ทง ศนย ชองวางหรอ พนทหนงท อยในตำาแหนง ใน หมายเลขโทรศพทน

3. สรางนพจนปกต Perl ในการระบ หมายเลขโทรศพททตรงกบ XXX -XXX -XXXX และกำาหนด DASH ตวแปร เพอเกบผล

Page 48: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

48

4. สรางนพจนปกต Perl เพอเชอม การแสดงออกปกต สำาหรบ ( XXX ) xxx-xxxx และ XXX - XXX - XXXX concatenation ชวยใหคณสามารถคนหาหมายเลขโทรศพท ทงสอง รปแบบ จาก การแสดงออกปกต วงเลบ และ DASH นพจนปกต จะถกวางไว ในวงเลบ บาร metacharacter ( | ) ท ตงอยระหวาง วงเลบ และ DASH สง คอมไพเลอร เพอใหตรงกบ รปแบบ ทง slashes รอบ รปแบบ ทงบอกคอมไพเลอ ท เรมตนและสนสด ของการแสดงออก 

5. ผานการแสดงออกปกต Perl เพอ PRXPARSE และรวบรวม การแสดงออก PRXPARSE สงกลบคากบรปแบบ ทรวบรวม ใชคาทม ฟงกชน อน ๆ Perl นพจนปกต และ การปฏบต CALL ชวยให เอสเอ ในการดำาเนนการ กบการแสดงออกปกต รวบรวม Perl

6. ใชฟงกชน MISSING เพอตรวจสอบวาการแสดงออกปกต Perl รวบรวม โดยไมผดพลาด

7. ใชคำาสง PUTLOG ทจะเขยน ขอความขอผดพลาดในการเขาสระบบ SAS ถานพจนปกต ไมได รวบรวม

8. รวบรวมการแสดงออกปกต Perl ทคนหา สำาหรบ สตรง ทถกตอง รหส พนททางตอนเหนอ แคโรไลนา

9. คนหาหมายเลข โทรศพทของธรกจ ทถกตอง10. ใชฟงกชน PRXPAREN เพอตรวจสอบวา submatch ทจะ

ใช PRXPAREN กลบ submatch ลาสดท จบค ถา รหสพนทตรงกบ รปแบบ ( XXX ), PRXPAREN สงกลบคา 2 ถา รหสพนทตรงกบ XXX ฟอรม PRXPAREN ผลตอบแทนท คมคา 4

11. โทร ประจำา PRXPOSN เพอดง ตำาแหนงและความยาวของ submatch

12. ใชฟงกชน PRXMATCH เพอตรวจสอบวา รหสพนททถกตอง รหส พนททางตอนเหนอ แคโรไลนาและ เขยน ขอสงเกตไปยงการเขาสระบบตอไปน ถกเขยนไปยงการเขาสระบบ SAS:

In North Carolina: Jerome Johnson (919)846-2198In North Carolina: Palinor Kent 704-782-3199

Page 49: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

49

In North Carolina: Takei Ito 704-298-4738การเขยนแกปญหาสงออก Perl เพอเขาสระบบ SAS

ขนตอนขอมลทใหการสนบสนนการแกจดบกพรองในกจวตรประจำาวน PRXDEBUG CALL ชวยใหคณสามารถเปดและปดขอความทสงออก Perl โดยการแกปญหาทถกสงไปเขาสระบบ SAS

ตวอยางตอไปนเขยนแกปญหาสงออก Perl ลงในบนทก SASdata _null_;

/* CALL PRXDEBUG(1) turns on Perl debug output. */ call prxdebug(1); putlog 'PRXPARSE: '; re = prxparse('/[bc]d(ef*g)+h[ij]k$/'); putlog 'PRXMATCH: '; pos = prxmatch(re, 'abcdefg_gh_');

/* CALL PRXDEBUG(0) turns off Perl debug output. */ call prxdebug(0);run;

เขยนเอาทพทตอไปนเพอเขาสระบบ SAS

การ Debugging output SASPRXPARSE: Compiling REx `[bc]d(ef*g)+h[ij]k$'size 41 first at 1rarest char g at 0rarest char d at 0 1: ANYOF[bc](10) 10: EXACT <d>(12) 12: CURLYX[0] {1,32767}(26) 14: OPEN1(16) 16: EXACT <e>(18) 18: STAR(21) 19: EXACT <f>(0) 21: EXACT <g>(23) 23: CLOSE1(25) 25: WHILEM[1/1](0)

Page 50: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

50

26: NOTHING(27) 27: EXACT <h>(29) 29: ANYOF[ij](38) 38: EXACT <k>(40) 40: EOL(41) 41: END(0)anchored `de' at 1 floating `gh' at 3..2147483647 (checking floating) stclass `ANYOF[bc]' minlen 7 PRXMATCH: Guessing start of match, REx `[bc]d(ef*g)+h[ij]k$' against `abcdefg_gh_'...Did not find floating substr `gh'...Match rejected by optimizerสำาหรบคำาอธบายรายละเอยดของการสงออกในการแกปญหา Perl, ในการอางอง PRXDEBUG CALL ในภาษา SAS: พจนานกรม

ฟงกชนฐาน SAS สำาหรบการใชงานในเวบ

ฟงกชนทจดการเนอหาบนเวบทเกยวของทมอยในฐาน SAS ซอฟแวร HtmlEncode และ URLENCODE สตรงเขารหส HTMLDECODE และ URLDECODE สตรงถอดรหส สำาหรบขอมลเกยวกบเวบทใชเครองมอการ SAS ทำาตามการเชอมโยงชมชนกบการสนบสนนลกคา SAS support.sas.com 

ARM Macros

คำาอธบายของ ARM MacrosARM Macros เปนวธในการวดประสทธภาพของโปรแกรมทพวก

เขาดำาเนนการใช Macros เขยนบนทกรายการลงในบนทก

Page 51: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

51

ของ ARMARM log คอผลลพธไฟลขอความภายนอกทมการบนทกเขา ARM ทำารายการคณใส ARM Macros ลงในโปรแกรม SAS ของคณทจดยทธศาสตรเพอทจะสรางสง ARM API เรยกฟงกชนฟงกชน API ARM เรยกโดยทวไปแลวจะเขาสเวลาสงและขอมลอน ๆ ทเกยวของไปยงแฟมบนทกการวดเวลาระหวาง ARM API เรยกฟงกชนเหลานทำาใหการวดการเวลาตอบสนองโดยประมาณ

ARMmacros มขอมลในตวและไมสงผลกระทบตอรหสทอยโดยรอบๆ

โดยมเงอนไขวาชอตวแปรผานการเปนตวเลอกในการ ARM macros มความเปนเอกลกษณ ARM macros ทใชในรหสเปด (รหสทไมไดอยในขนตอน PROC หรอ DATA) และในการจดเตรยมขอมลหรอ SCL environments.

มสองประเภทของแมโคร ARM คอ:

-ARM macros การใชงานเครองมอ

-macros หลงการประมวลผล ARM ทจะใชกบการเขาสระบบ ARM macrosหมายเหต: ARM macros ไมใชสวนหนงของสงอำานวยความสะดวก SAS Macro พวกเขาเปนสวนหนงของอนเตอรเฟซ SAS ARM เหนการตรวจสอบประสทธภาพการใชการวดการตอบสนองการใชงาน (ARM) สำาหรบขอมลเกยวกบอนเตอรเฟซ SAS ARM ทประกอบดวยการดำาเนนการของ API ARM เปนตวแทน ARM,ARM macros และ ARM system options

Page 52: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

52

การใช ARM Macrosภาพรวมของ ARM Macros

ARM macros เรยกใช ARM API function ARM macros โดยอตโนมตการจดการรหสกลบมาจาก ARM API การเรยกฟงกชน ARM API การเรยกฟงกชนจะดำาเนนการในซอฟตแวรทม SAS ARM macros และการเรยกฟงกชนเหลานเปนวธการวดประสทธภาพการทำางานของ SAS applications ขณะทพวกเขากำาลงทำางานอยสำาหรบ ARM API แตละการเรยกฟงกชนม macros ทสอดคลองกนตารางตอไปนแสดงใหเหนถงความสมพนธระหวาง SAS ARM macros และ ARM API function calls:

ตารางความสมพนธระหวาง SAS Macros ARM และฟงกชน API ARM

SAS ARM Macro

ARM API Function Call

%ARMINIT ARM_INIT%ARMGTI

DARM_GETID

%ARMSTRT

ARM_START

%ARMUPDT

ARM_UPDATE

%ARMSTOP

ARM_STOP

%ARMEND ARM_ENDSAS ARM macro ARM API function call.

สามารถใชได ARM macros ดงตอไปน

Page 53: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

53

%ARMINIT Macro สรางการเรยกใชฟงกชน ARM_INIT ซงชอโปรแกรมและเลอกผใชของโปรแกรมและทำาการเรมตน ARM environment สำาหรบโปรแกรม โดยปกตคณจะใสmacro นในรหสของคณอกครง

%ARMGTID Macro สรางการเรยกใชฟงกชน ARM_GETID ซงชอทำารายการ ใช ARMGTID% สำาหรบทำารายการทไมซำากนในแตละเพอทจะอธบายถงประเภทของการทำาธรกรรมตองเขาสระบบ A% ARMGTID โดยทวไปแลวจะเปนรหสสำาหรบการเรยนแตละรายการในโปรแกรมประยกต

%ARMSTRT Macro สรางการเรยกใชฟงกชน ARM_START ซงเปนสญญาณเรมตนของทำารายการเชน ใส ARMSTRT% กอนทแตละรายการทคณตองการเขาสระบบ ในขณะท ARMGTID% กำาหนดระดบรายการ, ARMSTRT% แสดงใหเหนวาทำารายการกำาลงดำาเนน

%ARMUPDT Macro คอตวเลอก macro ทสราง ARM_UPDATE function call ซงมขอมลเพมเตมเกยวกบความกาวหนาของรายการใส ARMUPDT% ระหวาง ARMSTRT% และ ARMSTOP% เพอทจะจดหาขอมลเกยวกบรายการทอยในความคบหนา

%ARMSTOP Macro สรางการเรยก ARM_STOP function call,ทสญญาณการสนสดของการทำารายการเชน ใส ARMSTOP% ททำารายการเปนทรจกกนวาจะแลวเสรจ

%ARMEND Macro สรางการเรยก ARM_END function call ซงสนสด ARM environment และสญญาณทใชจะไมทำาการเรยก ARM อก

Page 54: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

54

ARM macros อนญาตใหมการปฏบตตามเงอนไขการตงคาตวเลอก macros ทเหมาะสมและตวแปร

บางจดทวไปเกยวกบ ARM macros ดงตอไปน

คำาแนะนำาทวไปทม ARM macros ทงหมด เพอหลกเลยง, ในโปรแกรมการใชงานของตวแปร macros หรอตวแปร SAS ขนตนดวยตวอกษร "_ARM."

ตวเลอกทงหมด macros พารามเตอรคำาหลก ไมมพารามเตอรระบตำาแหนง คาสำาหรบตวเลอก macros ทควรจะเปนคาท SAS นนคอ , ตวแปร SAS,ตวอกษรยกมาเปนตวเลขคงทและอน ๆ

ARM macros สามารถทำางานไดภายในการจดการขอมลหรอในรหสเปด ใชตวแปร _ARMACRO หรอ MACONLY = yes | no ตวเลอก macros ทจะบอกการดำาเนน macros ซงโหมดนจะถกนำามาใช สำาหรบขอมลเพมเตมโปรดดทการตงคาของสงแวดลอม

การใชตวแปรทม ARM MacrosARM macros ใชตวแปรทจะสงรหสและขอมลอน ๆ จากทหนงไป

ยงอก macros เพราะ ARM macros function ภายในการจดเตรยมขอมลเดยวกนขามการจดเตรยมขอมลและในรหสเปดตวแปรทใชโดย macros สามารถใชรปแบบของขอมลทตวแปรขนตอนหรอตวแปร macros ตามทกำาหนดโดยเศรษฐกจมหภาค

การจดเตรยมตวแปร SAS DATA จะใชในการสงผานขอมล ID ระหวางสองหรอมากกวา ARM macros ในการจดเตรยมขอมลเดยวกน การจดเตรยมตวแปร SAS DATA จะใชในการสงผานขอมล ID ระหวาง

Page 55: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

55

สองหรอมากกวา ARM macros ใน DATA step environment แตไมไดอยใน SCL environment คำาสง DROP ถกสรางขนสำาหรบตวแปรเหลานเพอใหพวกเขาจะไมรวมอยโดยไมตงใจในชดขอมลทสงออก

หากขอมลท ID จะตองผานระหวางสองหรอมากกวา ARM macros ขามการจดเตรยมขอมลทแยกตางหาก,

แลวตวแปร Macros ทถกนำามาใช

SAS DATA step variables และ macro variables เปนทนำามาใชทวโลก ดงน

Global ARM Macro VariablesVariable Description Set By Used as Input

by_ARMA

PIDapplication ID

%ARMINIT %ARMEND_ARMT

XIDtransaction class ID

%ARMGTID %ARMSTRT_ARMS

HDLstart handle %ARMSTRT %ARMUPDT,

%ARMSTOP_ARMR

Cerror status %ARMUPDT

%ARMSTOP%ARMEND

none

_ARMGLVL

global level indicator

calling program

all

_ARMTLVL

target level indicator

calling program

all

_ARMEXEC

global enablement

calling program

all

_ARMACRO

open code enablement

calling program

all

Page 56: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

56

_ARMSCL

SCL code enablement

calling program

All

วตถประสงคของ ARM API 3 ขอทระบใน วตถประสงคของ ARM API ดงตอไปน

การใชงานทเปนตวแทนของระบบทคณกำาลงสราง,เชน สนคาคงคลงหรอโปรแกรมสงคำาสง เพราะอนเตอรเฟซ SAS กบ API ARM ใหผลรวมกบพนฐานตอการประยกตใชคณอาจตองการทจะพจารณานเมอคณกำาหนดขอบเขตโปรแกรมของคณ

รายการ classesspecify หนวยงานคณควรสรางคลาสรายการสำาหรบประเภทแตละหลกของงานทคณตองการสรางภายในโปรแกรม แนวคดในคลาสรายการเปนแมแบบสำาหรบเรมตนรายการ

กรณรายการระบเวลาเรมตนทแทจรงสำาหรบหนวยงาน กรณรายการมขอมลเวลาการตอบสนองทเกยวของดวย

API ARM ใชตวบงชตวเลขหรอรหสทไมซำากนการระบ ARM ทมอนพทและเอาทพทจาก ARM macros ชนสามท

o แตกตางรหสโปรแกรมo รหสรายการคลาสo เรมตนจดการ (เวลาเรมตน) สำาหรบกรณรายการกนของรหส

ทสอดคลองกบ ARM ชนสามเปน

Page 57: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

57

การจดการ ID การใช ARM macrosตวอยางเหลานแสดงใหเหนถงวธการท ARM macros

ทำางาน ARM macros โดยอตโนมตการจดการรหสการประยกตใชรหสการทำาธรกรรม และเรมตนจดการการจดการ ID และเรมตนทำางานไดดทสดในรปแบบการเรยก ARM งาย ด ARM แบบแผน macros ทซบซอนสำาหรบขอมลเพมเตม โดยคาเรมตน ARM macros ใชรหสทถกสรางขนมาจากการเรยก macros ลาสด ตวอยางตอไปนแสดงใหเหนถงวธการใชงานทงหมดของ ARM macros:

/*global macro variable to indicate ARM macros are outside the data step*/%let _armacro=1;

/* start of the application */%arminit(appname='Sales App', appuser='userxyz');

/* define the transaction classes */%armgtid(txnname='Sales Order', txndet='Sales Order Transaction'); /* more arm_getid calls go here for different transaction classes */

/* start of a transaction */%armstrt;

data_null_; /* place the actual transaction code here *//* update the status of the transaction as it is running */%armupdt(data='Sales transaction still running...',maconly=no);run;

/* place the actual transaction stop here *//* the transaction has stopped */%armstop(status=0);

/* end of the application */%armend;

Page 58: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

58

การจดการ ID ทงหมดจะดำาเนนการโดย macros โดยไมตองเรยกโปรแกรมเพอตดตามรหส macros ในตวอยางกอนหนานใชในแตละสวนใหญสรางขนลาสดคา ID จาก macros กอนหนาตวอยางตอไปนเหมอนกนแตความเหนอธบายผานของรหสในรายละเอยดเพมเตมไดท:

%let _armacro=1;

/* * This %arminit macro will generate both a SAS * variable and global macro variable by the name * of _armapid and set it in the ID that is returned * from the arm_init() function call that is * wrapped by the macro. */ %arminit(appname='Sales App', appuser='userxyz');

/* * This %armgtid macro uses the _armapid SAS variable * as input to the arm_getid() function call that it wraps. * It also generates both a SAS variable and global macro* variable by the name of _armtxid and sets them to the* ID that is returned from the arm_getid function call that* it wraps. */ %armgtid(txnname='Sales Order', txndet='Sales Order Transaction');

/* * Because we are still in the same DATA step, the %armstrt * macro below will use the _armtxid SAS variable that is * generated from the previous %armgtid macro as input * to the arm_start() function call that it wraps. It * also generates an _armshdl variable. */ %armstrt;

/* * The %armupdt call below uses the _armshdl SAS variable * that is generated from the previous %armstrt macro. */ %armupdt(data='Sales transaction still running...');

/* * The armstop call also uses the same _armshdl SAS * variable from the %armstrt. */ %armstop(status=0);

Page 59: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

59

/* * The %armend call uses the _armapid SAS variable * generated by the %arminit macro earlier to end * the application. */ %armend;

run;

คณไดรหส ARM macros ทงทแตกตางกนการจดเตรยมขอมลดงตอไปนและบรรลผลเดยวกน:

run;

data_null_; /* note the start of the transaction */ %armstrt;

/* place the actual transaction here */run;

data_null_; /* update the status of the transaction as it is running */ %armupdt(data='Sales transaction still running...');run;

data_null_;/* place the actual transaction stop here */

/* note that the transaction has stopped */ %armstop(status=0);run;

data_null_;/* note the end of the application */ %armend;run;

ARMMacro เรยกแบบแผนทซบซอนชวยใหMacro โดยอตโนมตใชตวแปรทวโลกในสถานการณขนพน

ฐานการเขยนโปรแกรมงาย แตMacro ทใชตวแปรทวโลกสามารถนำาไปสผลลพธททำาใหเขาใจผดในสถานการณทมความซบซอนมากขนเมอคณพยายามทจะตรวจสอบการใชงานพรอมกนหรอการทำาธรกรรมดงตอไปน:เพอบนทกรหสใชตวเลอก var * (APPIDVAR = TXNIDVAR =

Page 60: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

60

และ SHDLVAR =) เพอสงกลบหรอรหสในตวแปรของคณเองชอ นคอตวอยางทใชในการ SHDLVAR = คอเลอกทจะบนทกเรมตนจดการ:

data_null_; %arminit(appname='App 1',getid=yes,txnname='txn 1'); run;

/* start transaction instance 1*/data_null_; %armstrt; run;

/* start transaction instance 2 */data_null_; %armstrt; run;

/* WRONG! This assumes that the %armupdt is updating * the first transaction. However, it is actually updating the * second transaction instance because _armshdl contains the value * from the last macro call that was executed, which is the second * transaction. */data_null_; %armupdt(data='txn instance 1 still running...');

Run;

เพอบนทกรหสใชตวเลอก var * (APPIDVAR = TXNIDVAR = และ SHDLVAR =) เพอสงกลบหรอรหสในตวแปรของคณเองชอ นคอตวอยางทใชในการ SHDLVAR = คอเลอกทจะบนทกเรมตนจดการ:

data_null_; %arminit(appname='xyz',getid=YES,txname='txn 1');run;

/* start transaction instance 1 and save the ID using shdlvar= */data_null_; %armstrt(shdlvar=savhdl1 );run;

Page 61: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

61

/* start transaction instance 2 and save the ID using shdlvar= */data_null_;/*armstrt(shdlvar=savhd12 );run;

/* Now use the shandle= parameter after retrieving the first id. */data_null_; %armupdt(data='updating txn 1', shdlvar=savhdl1);run;

/* Use the same technique to stop the transactions *//* in the order they were started. */data_null_; %armstop(shdlvar=savhdl1); %armstop(shdlvar=savhdl2); %armend();run;

ในตวอยางกอนหนานแสดงใหเหนถงใชตวเลอก var * ลดความซบซอนของรหสเทคนคกอนหนานจะแนะนำาสำาหรบใชในทก ARM macro calls

ตวอยางตอไปนแสดงใหเหนถงวธการใชทงหมดของตวเลอก var * ไดโดยอตโนมตการจดการรหสสำาหรบการใชงานพรอมกน transaction classes, transaction instances และกรณรายการมความสมพนธ

data_null_; %arminit(appname='Appl 1', appuser='userid', appidvar=app1); %arminit(appname='Appl 2', appuser='userid', appidvar=app2); %arminit(appname='Appl 3', appuser='userid', appidvar=app3); run;

data_null_; %armgtid(txnname='Txn 1A', txndet='Txn Class 1A',appidvar=appl,txnidvar=txnidvar=txn1a); %armgtid(txnname='Txn 1B', txndet='Txn Class 1B',appidvar=appl,txnidvar=txnidvar=txn1b); %armgtid(txnname='Txn 2A', txndet='Txn Class 2A',appidvar=app2,txnidvar=txnidvar=txn2a); %armgtid(txnname='Txn 2B', txndet='Txn Class 2B',appidvar=app2,txnidvar=txnidvar=txn2b); %armgtid(txnname='Txn 3A', txndet='Txn Class 3A',appidvar=app3,txnidvar=txnidvar=txn3a); %armgtid(txnname='Txn 3B', txndet='Txn Class 3B',appidvar=app3,txnidvar=txnidvar=txn3b);run;

data_null_; %armstrt(txnidvar=txn1a,shdlvar=sh1a); %armstrt(txnidvar=txn1b,shdlvar=sh1b); %armstrt(txnidvar=txn2a,shdlvar=sh2a);

Page 62: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

62

%armstrt(txnidvar=txn2b,shdlvar=sh2b); %armstrt(txnidvar=txn3a,shdlvar=sh3a); %armstrt(txnidvar=txn3b,shdlvar=sh3b);run;

data_null_; %armupdt(data='Updating txn instance 1a...', shdlvar=sh1a); %armupdt(data='Updating txn instance 1b...', shdlvar=sh1b); %armupdt(data='Updating txn instance 2a...', shdlvar=sh2a); %armupdt(data='Updating txn instance 2b...', shdlvar=sh2b); %armupdt(data='Updating txn instance 3a...', shdlvar=sh3a); %armupdt(data='Updating txn instance 3b...', shdlvar=sh3b); run;

data_null_; %armstop(status=0, shdlvar=sh1a); %armstop(status=1, shdlvar=sh1b); %armstop(status=0, shdlvar=sh2a); %armstop(status=1, shdlvar=sh2b); %armstop(status=0, shdlvar=sh3a); %armstop(status=1, shdlvar=sh3b); run;

data_null_; %armend(appidvar=app1); %armend(appidvar=app2);

%armend(appidvar=app3); run;

ในฐานะทเปนตวอยางกอนหนานแสดงใหเหนถงคณสามารถสรางแบบแผนของคณเองการตงชอเพอระบตวตนของโปรแกรมการเรยนรายการและกรณรายการขามการจดเตรยมขอมลทแตกตาง, ในรหสเปดหรอในโปรแกรม SCL

Macro สนบสนนการสงผานอยางชดเจนจากรหสการใช APPID = TXNID = และ SHANDLE เลอกตวเลอกเหลานจะคลายกบตวเลอก var *ยกเวนวาพวกเขาไมไดเรยกคนคาผานการจดเตรยมการใชขอมลตวแปร macro ใชหลกของตวเลอกคอการจดหาคาคงททเปนตวเลขเปนคา ID กบ macro เพราะตวเลอก var * ไมยอมรบคาคงททเปนตวเลข

หมายเหต: การใช APPID = TXNID = และ = SHANDLE ไมแนะนำาสำาหรบการใชงานใหมตวเลอกเหลานจะยงคงเขากนไดกบ ARM macros กอนหนานออกมาเพยง ใช APPIDVAR = TXNIDVAR = และ SHDLVAR = แทน APPID = TXNID = และ = SHANDLE ตามลำาดบ

Page 63: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

63

เพราะรหสจะถกสรางโดยตวแทน ARM, ทจะผานทเปนตวเลขตวอกษรทคณตองชวงเรมตนใหม SAS ถามระบบยอย SAS นอกจากนยงมการทำางานของคณจะไมทราบวา ID จะเปนทเวลาดำาเนนการ

การใชงานของ APPIDVAR = TXNIDVAR = และ SHDLVAR = ตวเลอกจะแนะนำาเมอเขารหสการใชงานใหม

การกำาหนดตวชวดของผใชงานใน ARM macroตวชวดทเปนตอบโตวดตวเลข ID, หรออกขระทคณกำาหนด คณ

สามารถระบหนง  หรอมากกวาตวชวดสำาหรบแตละชนรายการ ARM เมอชวงเรมตน (ตวอยางของชนรายการ) จะเรมตนการปรบปรง หรอหยด, การประยกตใชคาทบงชสำาหรบตวชวดและเขยนมนไปยงลอก ARM โดยตวแทน ARM

ชอผใชตวชวด และผใชกำาหนดตวชวดจะตองระบรวมกนใน ARMGTID% METRNAM1-7 = ชอผใชตวชวดและจะตองเปนตวแปรตวอกษร SAS หรอยกคาตวอกษรไดถงแปดตวอกษรความยาว METRDEF1-7 = กำาหนดผลลพธของการทผใชกำาหนดตวชวดคาของ METRDEF1-6 = ตองเปนหนงในตอไปน:COUNT32, COUNT64, COUNTDIV

ใชตวนบทจะรวมคาชวง ตวนบยงสามารถคำานวณคาเฉลยสงสดและตำาสดตอรายการและการคำานวณทางสถตอนๆ

GAUGE32, GAUGE64, GAUGEDIVใชวดเมอผลรวมของคาไมจำาเปนตอง วดสามารถคำานวณคาเฉลยสงสดและตำาสดตอรายการและการคำานวณทางสถตอน ๆ

ID32, ID64ใชตวเลข ID เพยงแคเปนตวระบ แตไมเปนคาการวดเชนรหสขอผดพลาดหรอรหสพนกงาน ไมมการคำานวณสามารถดำาเนนการไดเมอตวเลข ID

SHORTSTR, LONGSTR

Page 64: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

64

ใชกำาหนด ID เปนตวระบ ไมมการคำานวณสามารถดำาเนนการกำาหนด ID

ขอจำากด : METRDEF7 = สามารถเทากบ LONGSTR และสามารถเปนสายยาวจาก 32 ไบต METRDEF1-6 ไมสามารถเทากบ LONGSTRหมายเหต: 32 และ 64 หมายถงจำานวนบตในตวนบวดตวหารหรอ ID

METRVAL1-7 = ARMSTOP สงคาของผใชกำาหนดตวชวดใหตวแทน ARM สำาหรบการเขาสระบบเมอใชใน ARMSTRT%, ARMUPDT% และ% คาของผใชกำาหนดตวชวดทตองเปนไปตามตวชวดทสอดคลองกนของผใชทกำาหนดไวใน ARMGTID%ตวอยางตอไปนแสดงใหเหนวาตวชวดทใช:

%let _armacro=1;

%arminit(appname='Sales App', appuser='userxyz');

/* name and define the user defined metrics */%armgtid(txnname='Sales Order', txndet='Sales Order Transaction', metrnam1=aname, metrdef1=count32); /* aname is the NAME of the metric and can be anything up to 8 characters */

/* start of user defined metric *//* initial value of the metric */%armstrt(metrval1=0);

datamyfile;../*some SAS statements*/.end=EOF;run;

/* value of the metric is the automatic observation */%armupdt(data='Sales transaction still running...',maconly=no, metrval1=_N_);

datamyfile;../*more SAS statements*/.if EOF then

/* value of the metric is at the highest observation count */%armstop(status=0, metrval1=_N_,maconly=no);run;

Page 65: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

65

%armend;

นยาม Correlators ใน ARM Macrosหลกหรอรายการหลกจะมองคประกอบหลายหรอรายการลกทซอน

กนอยภายในไดรายการลกสามารถมรายการลกอนๆมนจะมประโยชนมากทจะรวารายการแตละรายการลกเพอกอใหเกดการตอบสนองเวลารวมของรายการหลกถาเกดความลมเหลวในรายการหลก, รทรายการลกมความลมเหลวนยงมขอมลทเปนประโยชน correlators จะใชในการตดตามทำารายการหลกและลกเหลาน

การใช Correlators ตองชวงเรมตนรายการทหลายจดการจะใชงานพรอมกนนตองใช CORR = และ SHDLVAR =ตวเลอกใน% ARMSTRT Macros คณกำาหนดหลกแตละคนและรายการลกใน % ARMSTRT Macros ใชตวเลอก SHDLVAR = สำาหรบรายการแตละรายการลกคณยงจะตองกำาหนดรายการหลกใชตวเลอก PARNTVAR =

รายการแตละรายการลกจะเรมตนหลงจากรายการหลกจะเรมตน ทำารายการหลกหรอลกสามารถจะเหมอนหรอตางกนในชนรายการคณกำาหนดคลาสการทำารายการใน% ARMGTID Macros ใชตวเลอก TXNIDVAR =

ทงรายการหลกและลกสามารถมการปรบปรงทระบไวใน% ARMUPDT Macros ตวชวดทของผใชงานสามารถระบไดสำาหรบทงสองประเภทรายการใน % ARMSTRT Macros ถาผใชตวชวดทถกกำาหนดไวในชนรายการทสอดคลองกนใน % ARMGTID Macros

ทกรายการลกตองหยดใน% ARMSTRT Macros กอนทจะรายการหลกหยด ทำารายการลกหลายสามารถหยดไดในลำาดบใด ๆ

ตวอยางเชนรายการหลกประกอบดวย 100 จาก 110 ทำารายการลก, 120, และ 130 แตละการดำาเนนการเปนสวนหนงทแตกตางกนของหนวยงานทแสดงโดยรายการหลก 100 รายการลก 120 มทำารายการลก 121 และ 122 200 รายการมรายการลกไมม ทนสวนของโคดทใชในการ

Page 66: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

66

สรางความสมพนธเหลานคอ: %arminit(appname='Application",appidvar=appid);

%armgtid(appidvar=appid,txnname='TranCls',txndet='Transaction Class Def',txnidvar=txnid);%armstrt(txnidvar=txnid,corr=1,shdlvar=HDL100);%armstrt(txnidvar=txnid,corr=0,shdlvar=HDL200<,...user metrics>);%armstrt(txnidvar=txnid,corr=2,shldvar=HDL110,parntvar=HDL100);%armstrt(txnidvar=txnid,corr=3,shldvar=HDL120,parntvar=HDL100);%armstrt(txnidvar=txnid,corr=2,shldvar=HDL130,parntvar=HDL100);%armstrt(txnidvar=txnid,corr=2,shldvar=HDL121,parntvar=HDL120);%armstrt(txnidvar=txnid,corr=2,shldvar=HDL122,parntvar=HDL120);...%armstop(shdlvar=HDL200);%armstop(shdlvar=HDL121);%armstop(shdlvar=HDL122);%armstop(shdlvar=HDL120);%armstop(shdlvar=HDL130);%armstop(shdlvar=HDL110);%armstop(shdlvar=HDL100)

การเปดใชงานการประมวลผล ARM Macroการตงคาตวแปร Macro _ARMEXEC

ทงหมด ARM macros จะปดใชงานโดยคาเรมตนเพอแทรก ARM macros ภายในรหสนถกสรางขนทจะไมสงผลใหเกดโดยไมไดตงใจไมไมพงประสงค ทวไปเปดใชงานการทำางานของ ARM macros คณตองตงคาตวแปร macros _ARMEXEC ทวไปเพอคา 1 คาใด ๆ ทอน ๆ สำาหรบการปดการใชงาน macros _ARMEXEC ARM

มสองวธการตงคาตวแปร macros_ARMEXEC เปนวธแรกกำาหนดตวแปรในระหวางขนตอนการรวบรวมขอมลหรอโปรแกรมการใช SCL% LET:

%let _armexec = 1;ถาคา _ARMEXEC ไมไดรบการตงคาเปน 1 แลวรหสไมถกสรางขน

และมขอความทเขยนในบนทก:หมายเหต: macros ARMSTRT ขามโดย _armexecวธทสองของการตงคาตวแปร _ARMEXEC คอการใช SYMPUT

ระหวางการดำาเนนการ การตงคาตวแปร _ARMEXEC ในระหวางขนตอนของขอมลหรอการทำางานของโปรแกรม SCL:

Page 67: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

67

callsymput('_armexec', '1');ดวยเทคนคน macros จะตรวจสอบตวแปร _ARMEXEC ใน

ระหวางการทำางานของโปรแกรมและฟงกชน ARM call รนหรอขามตามความเหมาะสม

การเปดใชงานการประมวลผล ARM Macro ดวย SCLในระหวางการรวบรวมหรอการดำาเนนการ - มสองวธของการตง

คาตวแปร macros_ARMEXEC วธการทงสองจะอธบายการตงคาตวแปร Macro _ARMEXEC หรอคณสามารถใชการรวมกนของวธการเหลาน ตวอยางเชนตง _ARMEXEC ถง 1 โดยใชเทคนคการรวบรวม (บางทใน autoexec ทเรมตน SAS) และแลวรหสเปนตวเลอกทเมนแบบเลอนลงหรอวธการอนในการสมครเพอเปด _ARMEXEC และปดแบบไดนามกโดยใช SYMPUT CALL

ใน SCL ถา _ARMEXEC ไมไดเปน 1 เมอโปรแกรมคอมไพล macros ทงหมดจะถกตงคาใหเปนโมฆะและอนเตอรเฟซ ARM จะไมสามารถใชไดจนกวาจะมการ recompiled กบ ชด _ARMEXEC ถง 1

นอกจากนเพอใหการรวบรวมทเหมาะสมของแมโคร ARM ภายใน SCL คณตองตงคาตวแปรแมโคร_ARMSCL ทวไปถง 1 กอนทจะออกแมโคร ARM ใด ๆ ตวแปรนยบยงรนของงบ DROP ซงเปนสงทไมถกตองใน SCL

การดำาเนน เงอนไข ARM Macroมนจะมประโยชนใหรหส ARM Macro ในโปรแกรมของคณแตพวก

เขาทจะดำาเนนการตอเมอจำาเปนเทานน แมโครทงหมด ARM สนบสนนระดบ =ตวเลอกทระบระดบการดำาเนนการของ Macro นนถามนเปนรหสแลวระดบการดำาเนนการของ Macro จะทำางานเมอเทยบกบสองตวแปร Macro ทวไป_ARMGLVL และ_ARMTLVL _ARMGLVL เปนระดบตวแปรทวไป Macro

Page 68: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

68

ถาระดบ Value = บน ARM Macro นอยกวาหรอเทากบคา _ARMGLVL แลว Macro จะถกดำาเนนการ ถาระดบ value = บน ARM Macro มากกวาคา _ARMGLVL แลวดำาเนนการ ARM Macro ขาม /* Set the global level to 10 */

%let _armglvl = 10;

data_null_; %arminit(appname='Appl 1', appuser='userid' ); %armgtid(txnname='Txn 1', txndet='Transaction #1 detail' );

/* These macros are executed */ %armstrt( level=9 ); %armstop( level=9 );

/* These macros are executed */ %armstrt( level=10 ); %armstop( level=10 );

/* These macros are NOT executed */ %armstrt( level=11 ); %armstop( level=11 );

%armendrun;

_ARMTLVL เปนเปาหมายระดบตวแปร Macro ทำางานคลายกบ ARMGLVL ยกเวน value = ระดบ ARM Macro จะตองเทากบ _ARMTLVL value สำาหรบ Macro ทจะดำาเนนการ:

/* Set the target level to 10 */%let _armtlvl = 10;

data_null_; %arminit(appname='Appl 1', appuser='userid' ); %armgtid(txnname='Txn 1', txndet='Transaction #1 detail' );

/* These macros are NOT executed */ %armstrt( level=9 ); %armstop( level=9 );

/* These macros are executed */ %armstrt( level=10 ); %armstop( level=10 );

/* These macros are NOT executed */ %armstrt( level=11 ); %armstop( level=11 );

%armendrun;

Page 69: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

69

ระดบ = ตวเลอกทสามารถวางบน ARM Macro ใด ๆ และนแนะนำาเปนอยางยง จะชวยใหคณสามารถออกแบบในระดบทละเอยดยงขนจากการเขาสระบบทสามารถใชเปนอปกรณทมประสทธภาพกรองขอมลโดยการเขาสระบบขอมลเพยงเทาทคณตองการ ถาคณตงคาทงสอง _ARMGLVL _ARMTLVL และในเวลาเดยวกนแลวคาทงสองจะเทยบกบการตรวจสอบวา Macro ควรจะดำาเนนการหรอไม

การตงคา Macro Environmentคณตงคา Macro Environment โดยใชตวแปร _ARMACRO

มคา 1 หรอ 0 คา 1 ระบวา ARM Macro ทงหมด ARM เกดขนในรหสเปดและคา 0 ระบวา ARM Macro เกดขนเฉพาะในการจดเตรยมขอมล คณใชตวเลอก MACONLY = ถา ARM Macro บคคลไมไดอยดานนอกของสภาพแวดลอมของโลกทกำาหนดโดยการตงคา _ARMACRO สำาหรบโปรแกรม SCL คณระบ _ARMSCL มมลคา 1

ตารางตอไปนแสดงใหเหนถง Value สวนกลางตวเลอกชวคราวทจำาเปนและผล

การใช _ARMACRO _ARMSCL และการตงคา ARM Macro Environment

Global Value Temporary Option

Result

%let _ARMACRO=0

;

MACONLY=NO macro is in DATA step

%let _ARMACRO=1

;

MACONLY=YES macro is in open code

%let none macro is in

Page 70: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

70

_ARMSCL=1; SCL%let

_ARMSCL=0;none macro is not

in SCLตวอยางตอไปนแสดงใหเหนถงวธการตงคา macro environment ในจดเตรยมขอมล:

/* set global environment */%let _armacro = 1;data_null_; %arminit(appname='Appl 1', appuser='user1', appidvar=appl, maconly=no);/* exception to global value */run;

/* using global setting *//* maconly= parameter not needed */ %armgtid(txnname='Txn 1A', txndet='Txn Class 1A', appidvar=appl, txnidvar=txn1a);???????????????????????????????????????????? macro environment???????? SCL autoexec:/* set global environment */%let _armscl = 1;%let _armexec = 1;???????????????????????????????????????????? macro environment ?? SCL:init: %arminit(appname='Appl 1', appuser='user1', appidvar=appl); %armgtid(txnname='Txn 1A', txndet='Txn Class 1A', appidvar=appl, txnidvar=txn1a);return;main: %armstrt(txnidvar=txn1a,shdlvar=strt1);return;term: %armstop(shdlvar=strt1); %armend(appidvar=app1);return;

การใช macro หลงการประมวลผล ARMหลงการประมวลผล ARM macros นอกจากนยงม เหลาน ARM

macros ระบถงการดำาเนนการตาม ARM SAS พวกเขาจะไมไดเปนสวนหนงของ ARM API มาตรฐาน

หลงจากเขาสระบบขอมลประสทธภาพการทำางานไปยง ARM log,แลวคณสามารถใช ARM macros ในการอานบนทกและสรางขอมล

Page 71: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

71

SAS ชดสำาหรบการรายงานและการวเคราะห ชอเรมตนของไฟลจะถก ARMLOG.LOG เพอระบไฟลทสงออกทแตกตางกนใชตวเลอก ARMLOC ระบบ = ม3 macros หลงการประมวลผล ARM คอ:

%ARMCONV Macro แปลงลอก ARM ถกสรางขนใน SAS 9 หรอในภายหลงซงจะเปนรปแบบทเรยบงายเปนปายกำากบ = รปแบบ ARM รายการทใชใน SAS 8.2

%ARMPROC Macro เขาสระบบการประมวลผล ARM และผลหก SAS ชดขอมลทมขอมลจากบนทก ทจะประมวลผล ARM บนทกทมนยาม metadata ใชเกยวกบรายการการเรยนและคาขอมลของผใชในการเรมตนการจดการปรบปรงและหยดทำารายการ

%ARMJOIN Macro กระบวนการหกชดขอมล SAS ทสรางขนโดย ARMPROC% และสรางชดขอมลและมมมอง SQL ทมขอมลทวไปเกยวกบการใชงานและรายการ

สำาหรบ SAS 9 หรอตอมาในรปแบบทเรยบงายของบนทกเขาสระบบ ARM เปนทคนดวยเครองหมายจลภาคซงประกอบดวยจากคอลมนของขอมลทแยกออกจากกนดวยเครองหมายจลภาคตราประทบวนทและเวลาและ ตวระบการเรยกเสมอปรากฏในตำาแหนงคอลมนเดยวกน

รปแบบทใชใน SAS 8.2 คอ ปายกำากบเทากบแบบรายกาและจะงายตอการอาน แตนาเสยดายทSAS ใชเวลามากเวลาการจดรปแบบอกขระและเรองนมผลกระทบตอประสทธภาพการทำางาน ใน SAS 9 หรอในภายหลงบนทก ARM สามารถเปรยบเทยบกบ SAS 8.2ARM log โดยใชวธการดงตอไปน:

1. คณสามารถสราง SAS 9 หรอ ARM log ตอมาและประมวลผลโดยใช SAS 9 หรอ ARMPROC% ในภายหลงและ ARMJOIN%สงผลใหชดขอมลทมสถตสมบรณสำาหรบการสนสดของการจดการชวงเรมตนและจดสนสดของการประยกตใช

Page 72: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

72

2. การแปลง SAS 9 หรอในภายหลงแบบลอก ARM SAS 8.2 รปแบบทคณใช SAS ARM macro% ARMCONV

คำาสง

คำานยามของคำาสง

คำาสงของ SAS เปนชดคำาสงทอาจจะรวมถงคำาหลก ชอคำาสง ตวอกษรพเศษ คำาสงของ SAS ทงหมดจะสนสดดวยการปฏบตของการทำางาน SAS หรอการใหขอมลระบบ

สวนนจะครอบคลมสองชนดคำาสง SAS

ผทนำาขนตอนมาใชในการเขยนโปรแกรม ผคนทอยทวโลกสามารถใชโปรแกรม SAS ในทใดกได

ขนตอนวธการใชSAS ใหคำาอธบายรายละเอยดของคำาสง SAS ทมในแตละขนตอนของ SAS โดยเฉพาะ การสงออกของขอมลของ SAS คมอการใชงานจะชวยอธบายรายละเอยดของ output

การปฏบตการและการอธบายขนตอนคำาสงของขอมล

การปฏบตการและการอธบายขนตอนคำาสงของขอมลเปนชดคำาสงในการปฏบตการในแตละขนตอนขอมลบายอยางจะมการทำาซำา

ตารางตอไปน แสดงปฏบตการและอธบายคำาสงทคณสามารถใชในขนตอนขอมล SAS

การปฏบตการในขนตอนของขอมล

Page 73: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

73

Executable StatementsABORT IF, Sub set ting PUTAssignment IF-THEN/ELSE PUT, ColumnCALL INFILE PUT, FormattedCONTINUE INPUT PUT, ListDECLARE INPUT, Column PUT, NamedDELETE INPUT, Formatted PUT, _ODS_DESCRIBE INPUT, List PUTLOGDISPLAY INPUT, Named REDIRECTDO LEAVE REMOVEDO, Iterative LINK REPLACEDO Until LIST RETURNDO While LOSTCARD SELECTERROREXECUTE

MERGEMODIFY

SETSTOP

FILE _NEW_ SumFILE, ODS Null UPDATEGO TO OUTPUT

ขนตอนการอธบายคำาสงของขอมล

การอธบายคำาสงARRAY DATALINES LABELArray Reference DATALINES4 Labels,

Page 74: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

74

StatementATTRIB DROP LENGTHBY END RENAMECARDS FORMAT RETAINCARDS4 INFORMAT WHEREDATA KEEP WINDOW

คำาสงทวโลก

คำาสงทวโลกโดยทวไปมการใหขอมลกบระบบ SAS มการขอขอมลหรอขอมลทเคลอนยายไปมาระหวางโหมดทแตกตางกนของการดำาเนนการ ระบบคำาสงมการสงออกในรปแบบทหลากหลาย เชน ในรปแบบ Hypertext markup สามารถใชคำาสงใดกไดในโปรแกรม SAS คำาสงทวไปจะไมดำาเนนการสงเหลานจะมผลทนททระบบ SAS มการรวบรวมในโปรแกรม

นอกจากน SAS เปนผลตภณฑ ของชดคำาสงซอฟแวร สำาหรบขอมลเพมเตมโปรดดทเอกสาร SAS สำาหรบผลตภณฑเหลานน

ตวเลอกระบบ SAS

นยามของตวเลอก ระบบ SAS

Page 75: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

75

ตวเลอกระบบเปนคำาสงทมผลกระทบตอชอ SAS ของคณ พวกเขาควบคมวธการท SAS ทำาการดำาเนนการ เชน ระบบเตรยม SAS, ฮารดแวรและซอฟแวรเชอมตอ, และใสคา, การประมวลผล, และการสงออกของงานและ ไฟลSAS

ไวยากรณของ ตวเลอก ระบบ SAS ไวยากรณ สำาหรบการระบ ตวเลอกระบบ ในคำาสง ตวเลอก คอ Option(s);นคอคำาอธบาย ของไวยากรณคอ :

การเลอกระบ หนงหรอมากกวาหนง ตวเลอกระบบ SAS ทคณ ตองการเปลยนตวอยางตอไปน แสดงวธการใชตวเลอกระบบ NODATE และ linesize = ในคำาสงเลอก

options nodate linesize=72;ขอมลการดำาเนนงานบนบรรทดคำาสง หรอ ใน แฟมการกำาหนดคา, ไวยากรณเปนเฉพาะกบ สภาพแวดลอมการทำางาน ของคณ สำาหรบ รายละเอยดโปรดดเอกสาร SAS สำาหรบ สภาพแวดลอมการทำางานของคณ

การใชตวเลอก ระบบ SAS

ตงคาเรมตน

ขอมล การดำาเนนงาน สงแวดลอม ตวเลอกระบบ SAS จะเรมตน ดวยการตงคา เรมตนเมอ SAS ถกเรยก อยางไรกตามการ ตงคาเรมตน สำาหรบบางสวน ตวเลอกระบบ SAS จะแตกตางกนไป ทง สภาพแวดลอมการทำางาน และ เวบไซต สำาหรบ รายละเอยดโปรดดเอกสาร SAS สำาหรบ สภาพแวดลอมการทำางานของคณ

Page 76: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

76

การพจารณาลกษณะการตงคาจะมผล

เพอพจารณาวาการตงคาจะมผลสำาหรบ SAS ตวเลอกระบบใชหนงในตอไปน:

ตวเลอกระบบ OPLIST

เขยนจดหมายถง SAS เขาสระบบ การตงคาท ถก ระบไวใน บรรทด คำาสง SAS invocation

VERBOSEเขยนไปยง SAS เขาสระบบตวเลอกระบบทถกระบไวในแฟมการ

กำาหนดคาและบนบรรทดคำาสง

SAS รองขอ

หนาตางของระบบตวเลอก SAS

รายการทงหมด ตงคาตวเลอก ระบบ

ขนตอน OPTIONS

เขยน ตงคาตวเลอก ระบบบนทก SAS เพอแสดง การตงคาของ ตวเลอกระบบ ดวยฟงกชนการ

ทำางาน ทเฉพาะเจาะจงเชน การจดการ ขอผดพลาด ใช GROUP= option:

proc options GROUP=errorhandling;

run;

ฟงกชน GETOPTION

สงกลบคาของตวเลอกระบบทระบไว

Page 77: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

77

ตาราง พจนานกรม VOPTION

รายการใน SASHELP library, ทงหมดตงคาตวเลอกระบบในปจจบน คณสามารถดตารางนกบ SAS

Explorer, หรอคณสามารถดงขอมลจากตาราง VOPTION ใช PROC SQL ตาราง dictionary.options SQL

เขาถงไดดวยขนตอน SQL, แสดงรายการตวเลอกของระบบทมผล

การกำาหนด ตวเลอก ระบบ SAS ถก จำากด

เพอตรวจสอบวา ตวเลอกระบบ ถก จำากด โดยผดแลระบบ ของคณใชตวเลอกจำากดของขนตอน ตวเลอก ตวเลอกท จำากด การแสดง คาตวเลอก ของขอบเขตและ วธการทมน ถกกำาหนด ใน ตวอยางตอไปนSAS Log แสดงใหเหนวามเพยงหนงตวเลอก CMPOPT,มการ จำากด :

proc options restrict;

run;

ตวเลอกขอมลทจำากด1 proc options restrict;2 run; SAS (r) Proprietary Software Release 9.1 TS1B0

Option Value Information For SAS Option CMPOPT Option Value: (NOEXTRAMATH NOMISSCHECK NOPRECISE NOGUARDCHECK) Option Scope: SAS Session How option value set: Site Administrator Restricted

ตวเลอก จะแสดงขอมล น สำาหรบ ตวเลอกทงหมด ทถก จำากด หากผดแล เวบไซตของคณได ไมได จำากด ตวเลอก ใด ๆ แลวขอความตอไปน จะปรากฏในบนทกของ SAS:

Page 78: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

78

Your site administrator has not restricted any options.

การกำาหนดวธมลคา SAS ตวเลอก การตงคา ระบบ

เพอตรวจสอบวาคาตวเลอกการตงคาระบบใชขนตอนตวเลอกทมตวเลอกมลคาทระบไวในคำาสงตวเลอก ตวเลอกมลคาแสดงคาตวเลอกทกำาหนดและขอบเขต ตวอยางเชนคำาสงตอไปนเขยนขอความลงในบนทก SAS ทจะบอกคณวาคาตวเลอกสำาหรบ CENTER ตวเลอกถกจดตงระบบ:

proc options option=center value;

run;

ดงตอไปนLog SAS บางสวนแสดงใหเหนวาคาตวเลอกสำาหรบ CENTER เปนคาเรมตนทจดสงโดยผลลพธ

การเลอก คา ขอมลสำาหรบตวเลอกระบบ CENTER2 proc options option=center value;

3 run;

Option Value Information for SAS Option CENTER

Option Value: CENTER

Option Scope: NoReb

How option value set: Shipped Default

การไดรบ ขอมลรายละเอยด เกยวกบตวเลอก ระบบ

คณสามารถ ไดรบ ขอมลรายละเอยด พนฐาน เกยวกบตวเลอก ของระบบโดยการระบ ตวเลอกโดยการระบตวเลอก DEFINE ใน PROC คำาสง OPTIONS

Page 79: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

79

ตวเลอก DEFINE เขยนขอมลรายละเอยด เกยวกบตวเลอก ดงตอไปน ระบบการบนทก SAS :

ลกษณะ ชนด เมออยใน SAS session สามารถตงคา

ตวอยางเชนคำาสงตอไปนเขยนขอความลงในบนทก SAS ทมขอมลรายละเอยดเกยวกบตวเลอก CENTER ระบบ:

proc options option=center define;

run;

ซง Log SAS บางสวนจะบอกขอมลเฉพาะเกยวกบตวเลอกระบบ CENTERขอมลอธบายสำาหรบ CENTER ตวเลอกระบบ1 proc options option=center define;

2 run;

CENTER

Option Definition Information for SAS Option CENTER

Group= LISTCONTROL

Group Description: Procedure output and display settings

Description: Center SAS procedure output

Type: The option value is of type BOOLEAN

When Can Set: Startup or anytime during the SAS Session

Restricted: Your Site Administrator can restrict modification of this option

Optsave: Proc Optsave or command Dmoptsave will save this option.

การเปลยน การตงคา ตวเลอก SAS ระบบ ใหตงคาเรมตนสำาหรบตวเลอกระบบ SAS คณสามารถแทนทการ

ตงคาเรมตนของตวเลอกระบบทไม จำากด ทงนขนอยกบการทำางานของระบบตวเลอกทคณสามารถระบการตงคาในวธใดวธหนงตอไปน:

Page 80: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

80

บนบรรทดคำาสง: คณสามารถระบ การตงคา ใด ๆ ไม จำากด SAS ตวเลอก ระบบ ทงบนบรรทดคำาสง SAS หรอ ใน แฟมการกำาหนดคา ถาคณใช การตงคา ตวเลอกเดยวกน บอยครง กมกจะ สะดวกในการ ระบตวเลอกใน แฟมการกำาหนดคามากกวา บนบรรทดคำาสง ทงสองวธ การตงคา ตวเลอกระบบ ของคณในระหวาง SAS invocation หลาย SAS ตงคาตวเลอก ระบบ สามารถระบ เฉพาะในชวง SAS รองขอคำาอธบาย ของตวเลอก แตละคนใหรายละเอยด

ในแฟมการกำาหนดคา: ถาคณใช การตงคา ตวเลอกเดยวกน บอยครง กมกจะ สะดวกในการ ระบตวเลอกในแฟมการกำาหนดคามากกวา บนบรรทดคำาสง

ในคำาสงทเลอกคณสามารถระบตวเลอก คำาสง ไดตลอดเวลา ในชวง session ยกเวน ภายใน สายขอมล เสนหรอ parmcard การตงคา ยงคงมผล ตลอด โปรแกรม ปจจบนหรอ กระบวนการ จนกวาคณจะ ตงคาดวย อก คำาสง ตวเลอก หรอ เปลยน ในหนาตาง ระบบ SAS ตวเลอก คณยงสามารถวางคำาสง ตวเลอก ใน ไฟล autoexec

ในระบบ SAS หนาตางตวเลอก : ถาคณอยใน windowing environment เลอกชนดในกลองหรอบนบรรทดคำาสงเพอเปดหนาตางระบบ SAS ตวเลอกระบบ SAS หนาตางตวเลอกแสดงชอของ SAS กลมตวเลอกระบบ จากนนคณสามารถขยายกลมเพอดชอตวเลอกและการเปลยนแปลงการตงคาปจจบนของพวกเขา หรอคณสามารถใชคำาสงตวเลอกคนหาตวเลอกในเมนผดขนทจะไปโดยตรงไปยงตวเลอก การเปลยนแปลงจะมผลทนทและยงคงมผลตลอดทง session จนกวาคณจะตงคาพวกเขาดวยคำาสงตวเลอกหรอเปลยนพวกเขาในหนาตางระบบ SAS ตวเลอก

ขอมลสภาพแวดลอมในการดำาเนนงาน : บน UNIX, Open VMS,และ z/OS hosts,ตวเลอกระบบ SAS สามารถถก จำากด ไดโดยผดแลเวบไซตเพอใหพวกเขาไมสามารถเปลยนแปลงไดโดยผใช ทงนขนอย

Page 81: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

81

กบสภาพแวดลอมการปฏบตการของคณตวเลอกระบบสามารถ จำากดสากลโดยกลมหรอโดยผใช คณสามารถใชขนตอนในการตรวจสอบตวเลอกตวเลอกทถก จำากด สำาหรบขอมลเพมเตมเกยวกบวธการทจะ จำากด ตวเลอกใหดทคมอกำาหนดคาสำาหรบสภาพแวดลอม SAS ปฏบตการของคณ สำาหรบขอมลเพมเตมเกยวกบขนตอนการเลอกดเอกสาร SAS สำาหรบสภาพแวดลอมการปฏบตการของคณ

วธ การตงคา ตวเลอก ระบบ ระยะยาว จะมผล

เมอคณระบการตงคา ตวเลอก SAS ระบบการตงคาสามารถใชไดกบทก ขนตอน ทตามมา สำาหรบระยะเวลาของ session SAS หรอจนกวาคณจะ ตงคา ดงทแสดง:

data one;

set items;

run;

/* option applies to all subsequent steps */

options obs=5;

/* printing ends with the fifth observation */

proc print data=one;

run;

/* the SET statement stops reading

after the fifth observation */

data two;

set items;

run;

หากตองการอาน มากกวาหา ขอสงเกต คณ ตองตงคา ตวเลอก ระบบ OBS = สำาหรบขอมล เพมเตมเกยวกบ OBS= System Option ,ด อางองภาษา SAS: พจนานกรม

Page 82: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

82

ตามลำาดบความสำาคญ

ถาตวเลอก ระบบปรากฏอยใน มากกวาหนง สถานท ตามลำาดบความสำาคญจาก สงสดไปตำาสด จะเปนดงน:

1 คำาสง ตวเลอกและ หนาตาง ระบบ SAS ตวเลอก

2 ไฟล autoexec ( ทมคำาสง OPTIONS )

3 ขอกำาหนด บรรทดคำาสง

4 ขอกำาหนด แฟมการกำาหนดคา

5 SAS ตงคาเรมตน ระบบ

ขอมล การดำาเนนงาน ดานสงแวดลอม : ในบางสภาพแวดลอม ในการดำาเนนงาน คณสามารถระบ ตวเลอกระบบ ใน สถานทอน ๆ ดเอกสาร SAS สำาหรบ สภาพแวดลอมการทำางาน ของคณ

ตามลำาดบความสำาคญ สำาหรบ SAS ตวเลอก โหมด การประมวลผล แสดงใหเหนถง ลำาดบความสำาคญ วา SAS ใช สำาหรบตวเลอก โหมด การทำางาน ตวเลอกเหลาน เปนสวน ของตวเลอกการ SAS invocation และมการ ระบในบรรทด คำาสงในระหวาง การ SAS invocation

ตามลำาดบความสำาคญ สำาหรบ SAS ตวเลอก โหมด การประมวลผล

Execution Mode Option PrecedenceOBJECTSERVER HighestDMR 2ndINITCMD 3rdDMS 3rdDMSEXP 3rdEXPLORER 3rdลำาดบความสำาคญ ของ SAS เลอก โหมด การทำางาน ประกอบดวย กฎตอไปน:

Page 83: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

83

SAS ใชตวเลอกโหมด การทำางาน ทมความสำาคญสงสด ถาคณระบ มากกวาหนง ตวเลอกโหมด การดำาเนนการของ

ลำาดบเทากน , SAS ใชเพยง ตวเลอกสดทาย ทระบไวการตอบโตตอบการตงคาของตวเลอกขอมล

บาง ตวเลอกระบบ ใชชอ เดยวกบตวเลอก ชด ขอมล ทมฟงกชน เดยวกน ตวเลอกระบบ ยงคงมผล สำาหรบทก ขนตอน ของขอมลและ ขนตอน PROC ใน SAS session จนกระทง การตงคา ของพวกเขา ทมการเปลยนแปลง ตวเลอก ชด ขอมล แต แทนท ตวเลอก ระบบเฉพาะขอมล เฉพาะ ทกำาหนดไว ในขนตอน ทมน ปรากฏขน

ในตวอยางน OBS = ตวเลอกระบบ ระบในคำาสง OPTIONS ระบวามเพยง 100 คนแรกทสงเกตจะไดรบการอานจากขอมลใด ๆ ทตงอยภายในงาน SASOBS = ตวเลอกชดขอมลในคำาสง SET แตแทนทตวเลอกระบบและระบวามเพยง 5 ครงแรกทสงเกตจะอานจากขอมลสองชดขนตอน PROC PRINT ใชการตงคาตวเลอกระบบและอานและพมพ 100 คนแรกทสงเกตจากชดขอมลทTHREE:

options obs=100;

data one;

set two(obs=5);

run;

proc print data=three;

run;

การเปรยบเทยบ

หมายเหต : ความแตกตางระหวาง ตวเลอกระบบ ขอมล ตงคาตวเลอก และตวเลอก คำาสง

Page 84: home.kku.ac.th Language... · Web viewการเล อกช ดข อม ลในระบบม จำนวนมากเป นข อม ลท ใช ช อเด ยวก

84

ตวเลอกระบบ

ยงคงมผล สำาหรบ ขอมลทงหมด และขนตอน PROC ในงาน SAS หรอ กระบวนการปจจบน จนกวาจะมการ respecified

ขอมลการ ตงคาตวเลอก

นำาไปใชกบ การประมวลผลของชด ขอมล SAS กบทพวกเขา ปรากฏ บาง ขอมลท ตงคาตวเลอก มตวเลอก ระบบ ทสอดคลองกน หรอตวเลอก คำาสง LIBNAME สำาหรบชด ขอมลท แตละทาน สามารถใชตวเลอก ชด ขอมลไป แทนทการตงคา ตวเลอกอน ๆ เหลาน

เลอกคำาสง

ควบคมการดำาเนนการของคำาสงทปรากฏตวเลอกในคำาสงทวโลก เชน ในคำาสง LIBNAME ทสามารถมผลกระทบในวงกวาง