58
11 November 2013 วววว 316 441 Statistical Data Processing ววววววววววววว วว.วววววว ววววววววววว วววววววว 2 วววววว วววววว SAS ( SAS Variables ) ววววววววววววววววววววววววว 1. น นน น น น นน น น น SAS ( Definition of SAS Variables ) 2. น นน น นน น น น น นน น น น SAS ( SAS Variable Attributes ) 3. น นน นน น น น น นน น น นน น น น (Ways to Create Variables) 4. น น น น น น น น น นน น นน น น น (Variable Type Conversions) 5. นนนนนนนนนนนนนนนนนนนนนนนนนน ( Aligning Variable Values ) 6. นนนนนนนนนนนนนนน ( Automatic Variables ) 7. นนนนนนนนนนนน SAS ( SAS Variable Lists ) 8. นนนนนนนนน นนนนนนนนนนนนนนนนนนนนนนนนน น นน น น น ( Dropping,Keeping,and Renaming Variables ) 9. นนนนนนนนนนนนนนนนนนนนนนนนนนนนน SAS ( Numeric Precision in SAS Software ) 1. ว วว ว ว ว วว ว ว ว SAS ( Definition of SAS Variables ) ตตตตตต

home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

11 November 2013

วชา 316 441 Statistical Data Processing

อาจารยผสอน รศ.วชดา ไชยศวามงคล

กลมท 2 เรอง ตวแปร SAS ( SAS Variables )

ประเดนทนำาเสนอมดงน

1. นยามตวแปร SAS ( Definition of SAS Variables )2. คณลกษณะตวแปร SAS ( SAS Variable Attributes )3. วธการสรางตวแปร (Ways to Create Variables)4. การแปลงชนดตวแปร (Variable Type Conversions)5. การจดตำาแหนงของคาตวแปร ( Aligning Variable Values )6. ตวแปรอตโนมต ( Automatic Variables )7. รายการตวแปร SAS ( SAS Variable Lists )8. ก า ร เ ล อ น ก า ร ร ก ษ า แ ล ะ ก า ร เ ป ล ย น ช อ

ตวแปร( Dropping,Keeping,and Renaming Variables )9. ค ว า ม แ ม น ย ำา ข อ ง ต ว แ ป ร ใ น โ ป ร แ ก ร ม SAS ( Numeric

Precision in SAS Software )

1.นยามตวแปร SAS ( Definition of SAS Variables ) ตวแปร

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

ตวแปรตวอกษร

Page 2: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

21 November 2013

เปนตวแปรชนดตวอกษรทประกอบดวยตวอกษร ตวเลข 0 ถง 9 และอกขระพเศษอน ๆ

ตวแปรทเปนตวเลข

เปนตวแปรชนดตวเลขทเกบเปนตวเลขทศนยม รวมทงวน และเวลา

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

ระบบปฏบตการ

2.คณลกษณะตวแปร SAS( SAS Variable Attributes )

ตวแปร SAS มคณลกษณะทอยในตารางตอไปน :

คณลกษณะของตวแปร

คณลกษณะของตวแปร

คาทเปนไปได คาเรมตน

Name ชอ SAS ถกตอง ดกฎ สำาหรบคำาและชอในภาษาของ SAS

ไมม

Type ตวเลขและตวอกษร ตวเลขLength ไบตท 2 ถง 8

1-32,767 ไ บ ต ส ำา ห ร บ ต วอกษร

8 ไบตสำาหรบตวเลขและตวอกษร

Format ด Formats and Informats

BEST12 ส ำา ห ร บตวเลข

Page 3: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

31 November 2013

$w. ส ำา ห ร บ ต วอกษร

Informat ด Formats and Informats

w.d สำาหรบตวเลข$w.ส ำา ห ร บ ต วอกษร

Label ถง 256 ตวอกษร ไมมPosition in observation

1- n ไมม

Index type NONE, SIMPLE, COMPOSITE, or BOTH

ไมม

1 ถากำาหนดไมชดเจน จะกำาหนดชนดและความยาวของตวแปร โดยทเหตการณแรกใน DATA step.2 ความยาวตำาสดคอ 2 ไบตในบางการปฏบตงาน ,จำานวนไบตท 3 ในการปฏบตงานผอนดเอกสารประกอบของ SAS ของสภาพแวดลอมใน การปฏบตงาน

หมายเหต : เร มตนกบ SAS 9.1 จำานวนของตวแปรไดมากกวา 32,767 จำานวนสงสดจะขนอยกบสภาพแวดลอมของคณและคณลกษณะของแฟม

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

Page 4: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

41 November 2013

Name

ระบตวแปร ชอตวแปรตองสอดคลองกบกฎการตงชอของ SAS ชอ SAS ยาวไดถง 32 ตวอกษร ตวอกษรตวแรกตองเปนตวอกษร (A, B, C,..., Z) หรอเนน (_), ตวเลข (0-9) หรอขด หมายเหตวาไมสามารถวางเปลา ตวแปรกรณทผสมได ดกฎสำาหรบคำาและชอในภาษา SAS สำาหรบราย ละเอยดเพมเตมเกยวกบตวแปรกรณผสม

ชอ _N_, _ERROR_, _FILE_, _INFILE_, _MSG_, _IORC_ และ _CMD_ ทสงวนไวส ำาหรบตวแปรทสรางขนโดยอตโนมตส ำาหรบ DATA step. หมายเหตวา SAS ผลตภณฑใชชอตวแปรทเร มตน และจบ ดวยการขดเสนใต ขอแนะนำาวา คณไมไดใชชอทเรมตน และจบ ดวยตวอกษรขดลางในโปรแกรมประยกตของคณเอง ดตวแปรอตโนมตสำาหรบขอมลเพมเตม

ก า ร ก ำา ห น ด ค า ข อ ง ค ณ ล ก ษ ณ ะ น ใ ช ฟ ง ก ช น VNAME ห ร อ VARNAMEห ม า ย เ ห ต : ก ฎ ส ำา ห ร บ ช อ ต ว แ ป ร ท อ ธ บ า ย ไ ว ใ น ส ว น น ใ ช เ ม อ ก า ร VALIDVARNAME = ระบบตวเลอกถกตงคาเปน VALIDVARNAME = V7 ซงเปนการตงคาเร มตน กฎอน ๆ ใชเมอตวเลอกนจะกำาหนดแตกตางกน ดกฎสำาหรบคำาและชอในภาษา SAS สำาหรบขอมลเพมเตม

Type

ระบตวแปรเปนตวเลขหรอตวอกษร ใน DATA step ตวแปรจะสรปใหเปนตวเลขเวนแตระบตวอกษรคาตวเลขแทนตวเลข สามารถอานไดในหลาย

Page 5: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

51 November 2013

วธ และเกบไวในรปทศนยม คาสามารถประกอบดวยตวอกษร ตวเลข และอกขระพเศษ และสามารถเปน 1 ตวอกษรยาว 32,767

การกำาหนดคาของคณลกษณะน ใชฟงกชน VARTYPE หรอ VTYPE

Length

จำานวนไบตท ใชเก บคาของตวแปรแตละชดขอมลแบบ SAS คณสามารถใชคำาสง LENGTH เพอตงคาความยาวของตวแปรทงตวเลข และตวอกษร ความยาวตวแปรทระบไวในคำาสง LENGTH มผลตอความยาวของตวแปรตวเลขใน output data set ในระหวางการประมวลผล ตวแปรตวเลขทงหมดมจ ำานวน 8 ความยาวของตวแปรตวอกษรทระบในค ำาสง LENGTH มผลตอความยาวระหวางประมวลผลและความยาวใน output data set

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

การก ำาหนดค าของคณล กษณะน ใช ฟ งก ช น VLENGTH หรอ VARLEN

Format

Page 6: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

61 November 2013

อางถงคำาสงทใช SAS เมอพมพคาตวแปร ถาไมมรปแบบระบ รปแบบเรมตนคอ BEST12 สำาหรบตวแปรตวเลข และ $w. สำาหรบตวแปรตวอกษร คณสามารถกำาหนดรปแบบของ SAS กบตวแปร FORMAT หรอ ATTRIB คณสามารถใชกระบวนการ FORMAT เพอสรางรปแบบของคณเองสำาหรบตวแปร

การก ำาหนดค าของคณล กษณะน ใช ฟ งก ช น VFORMAT หรอ VARFMT

Informat

อางถงค ำาส งท ใช SAS เม ออานคาขอมล ถ า informat ไมได ระบ informat เร มตนเปน w.d สำาหรบตวแปรตวเลข และ $w. สำาหรบตวแปรต วอ กษร คณสามารถก ำาหนด SAS informats ก บต วแปรในค ำาส ง ATTRIB หรอ INFORMAT คณสามารถใชกระบวนการสราง FORMAT ของคณเอง สำาหรบตวแปร informat

การกำาหนดคาของคณลกษณะน ใชฟงกชน VINFORMAT หรอ VARINFMT

Label

หมายถง สญลกษณอธบายไดยาวถง 256 อกขระ ซ งสญลกษณตวแปร สามารถพมพ โดยบางขนตอนของ SAS ใชในการเขยนรายงาน คณสามารถกำาหนดชอตวแปรดวยคำาสง LABEL หรอ ATTRIB

ก า ร ก ำา ห น ด ค า ข อ ง ค ณ ล ก ษ ณ ะ น ใ ช ฟ ง ก ช น VLABEL ห ร อ VARLABEL

Page 7: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

71 November 2013

Position in observation

จะถกกำาหนด โดยสงใหมการกำาหนดตวแปรใน DATA step คณสามารถคนหาตำาแหนงของตวแปรในขอสงเกตของชดขอมล SAS โดยดำาเนนการเนอหา คณลกษณะนโดยทวไปไมมความสำาคญใน DATA step ยกเวนในรายการตวแปร ตอไปน :

var rent-phone;ด SAS Variable Lists สำาหรบขอมลเพมเตม

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

การกำาหนดคาของคณลกษณะน ใชฟงกชน VARNUM

ในกำาหนดคาของคณลกษณะน ใชตวเลอก OUT = กบเนอหาขนตอนออกเปนการสรางชดขอมล ตวแปร IDXUSAGE ในชดขอมลผลลพธประกอบดวยคาตอไปนสำาหรบแตละตวแปรอยางใดอยางหนง :

คาดชนชนดคณลกษณะ

คา คำาจำากดความNONE ตวแปรไมมการทำาดชนSIMPLE ตวแปรเปนสวนหนงของดชนไดCOMPOSITE ต ว แ ป ร เ ป น ส ว น ห น ง อ ย า ง น อ ย ห น ง ด ช น

COMPOSITEBOTH ตวแปรเปนสวนหนงของดชนอยางงายและดชน

COMPOSITE

Page 8: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

81 November 2013

3.วธการสรางตวแปร ( Ways to Create Variables )

ภาพรวม

คณสามารถสรางตวแปรใหมใน DATA Step ไดตามขนตอนดงน

ใชคำาสง Assigment อานขอมลดวยคำาสง INPUT ในขนตอน DATA step ระบตวแปรใหมใน FORMAT หรอคำาสง INFORMAT ระบตวแปรใหมในคำาสง LENGTH ระบตวแปรใหมในคำาสง ATTRIB

หมายเหต: นอกจากนคณยงสามารถสรางตวแปร ดวยฟงกชน FGET ด SAS ภาษาอางอง: พจนานกรมสำาหรบขอมลเพมเตม

3.1 การใชคำาสง Assignment ใน DATA Step คณสามารถสรางตวแปรใหม และกำาหนดใชเปนครงแรกทางดานซายของคำาส ง Assignment SAS กำาหนดความยาวของตวแปรจากเหตการณทแรกใน DATA Step ตวแปรใหมไดรบชนดและความยาวเดยวกนกบนพจนทางดานขวาของคำาสง assignment เมอชนดและความยาวของตวแปรไมชดเจนตง SAS ใหตวแปรชนดเรมตนและความยาวตามทแสดงในตวอยางในตารางตอไปน

Page 9: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

91 November 2013

ผลลพธเมอตงความยาวและชนดตวแปรไมชดเจน 

นพจน ตวอยาง ชนดของ ผลลพธของ X

ความยาวผลของ X

อธบาย

ตวแปรทเปนตวเลข

ระยะท 4x =a;

ตวแปรทเปนตวเลข

8 เรมตนตวเลขความยาว 8

ไบตตวแปรอกขระ

ความยาว a $ 4x =a;

ตวแปรตวอกขระ

4 ความยาวของตวแปรตน

อกขระสญพจน

x = 'ABC'x = 'ABCDE'

ตวแปรตวอกขระ

3 ความยาวของ ตวอกษรทพบ

ในขนแรกเรยงตอกนของตวแปร

ความยาว a $ 4b $ 6c $ 2

x = a||b||c

ตวแปรตวอกขระ

12 ผลรวมของความยาวของ

ตวแปรทงหมด

เรยงตอกนของตวแปรและตวอกษร

ความยาว a $ 4x = a||'แมว ';

x =

ตวแปรตวอกขระ

7 ผลรวมของความยาวของตวแปรและตว

Page 10: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

10 1 November 2013

a||'CATNIP'; อกษรทพบในคำาส

ง assignment

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

หมายเหต: คำาสง A RETAIN ใชงานตวแปร และสามารถกำาหนดคาเร มตน แมวาคำาสง RETAIN แสดงหลงจากคำาสง assignment

3.2 อานขอมล ดวยคำาสงทปอนใน DATA Step เมอคณอานขอมลดบใน SAS โดยใชคำาสง INPUT กำาหนดตวแปรตามตำาแหนงในขอมลดบ คณสามารถใชหนงในวธตอไปนเปนคำาสง INPUT ใหขอมล SAS เกยวกบวธการจดระเบยบขอมลดบ:

ปอนขอมลคอลมน ปอนรายการ (ธรรมดา หรอ ปรบเปลยน) รปแบบการปอนขอมล ปอนชอ

ด SAS ภาษาอางอง: พจนานกรมสำาหรบขอมลเพมเตมเกยวกบการใชแตละวธ

Page 11: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

11 1 November 2013

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

3.3 ระบตวแปรใหมในรปแบบหรอคำาสง INFORMATคณสามารถสรางตวแปร และระบรปแบบหรอรายละเอยดของรปแบบหรอคำาสง INFORMAT ตวอยาง คำาสงรปแบบตอไปนสรางตวแปรชอ Sale_Price มรปแบบของ 6.2 ในชดขอมลใหมทชอ SALES:

Page 12: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

12 1 November 2013

SAS สรางตวแปรตวเลขกบชอ Sale_Price และมความยาว 8

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

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

สำาหรบตวแปรอกขระ คณตองใหคาไดยาวทสดในคำาสงแรกทใชตวแปร เนองจากคณไมสามารถเปลยนความยาวกบคำาสง LENGTH ตามมาภายใน DATA step เดยวกน ความยาวสงสดของตวแปรอกขระใด ๆ ใน SAS เปนไบต 32,767 สำาหรบตวแปรตวเลข คณสามารถเปลยนความยาวของตวแปร โดยใชคำาสง LENGTH ตามมา เมอ SAS กำาหนดคาใหตวแปรอกขระ pads คา ดวยชองวาง หรอตดทอนคาทางดานขวา ถาจำาเปน เพอใหตรงกบความยาวของตวแปรเปาหมาย พจารณาคำาตอไปน:

Page 13: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

13 1 November 2013

length address1 address2 address3 $ 200; address3=address1||address2;

เนองจากความยาวของ ADDRESS3 200 ไบต เทาแรก 200 ไบตเรยงตอกน (คาของ ADDRESS1) ถกกำาหนดใหกบ ADDRESS 3 คณอาจสามารถหลกเลยงปญหานโดยตดแตงฟงกชนการเอาชองวางตอทายจาก ADDRESS 1 กอนทำาการเรยงตอกน ดงน:address3=trim(address1)||address2;

ด SAS ภาษาอางอง: พจนานกรมสำาหรบขอมลเพมเตมเกยวกบการใชคำาสง LENGTH

3.5 ระบตวแปรใหมในคำาสง ATTRIBคำาสง ATTRIB ชวยใหคณสามารถระบคณลกษณะตวแปรตอไปนส ำาหรบตวแปรทมอยอยางนอยหนงอยาง:

FORMAT = INFORMAT = LABEL = LENGTH =

ถาตวแปรไมมอยางนอยหนงรปแบบ =, INFORMAT =, และความยาว =คณสมบตทสามารถใชเพอสรางตวแปรใหมได ตวอยาง ขนตอนขอมลตอไปนสรางตวแปรชอ Flavor ในชดขอมลชอ LOLLIPOPS:

Page 14: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

14 1 November 2013

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

3.6 การใช IN = การเลอกชดขอมลThe IN = ชดขอมลตวเลอกสรางตวแปรแบบ boolean แบบพเศษทบงชวา ชดขอมลสวนขอมลการเกบขอมลปจจบน ตวแปรมคาเปน 1 เมอเปนจรง และคา 0 เมอเปนเทจ คณสามารถใช IN =ในงบชดรวมและการปรบปรงใน DATA step.

ตวอยางตอไปนแสดงรวมเขาดวยกนในชวงแรก และชดขอมลใหม IN = option คอใชเพอสรางตวแปรชอ X ทบงชวา ทงคคอชดขอมลใหมมสวนทำาใหขอมลตรงกนกบการสงเกต:

Page 15: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

15 1 November 2013

4. การแปลงชนดตวแปร ( Variable Type Conversions )ถาคณกำาหนดตวเลขทผนแปรและกำาหนดผลของตวอกษรทตองการให

แสดงออกมา SAS จะพยายามแปลงตวอกษรเปนตวเลขและปฏบตการกบรายการ (statement) ถาแปลงขอมลไมได SAS จะพมพหมายเลขไวในระบบ(log) กำาหนดตวเลขผนแปรทหายไปและกำาหนดคาผนแปรทผดพลาด ERROR_to 1 ใหอตโนมต

สำาหรบกฎของ SAS ซงแปลงขอมลผนแปรใหเปนตวเลขผนแปรอ ต โ น ม ต แ ล ะ ใ น ท า ง ก ล บ ก น ด ไ ด จ า ก Automatic Numeric-CaracterConvertion (การแปลงตวอกษร- ตวเลข อตโนมต)

ถาคณกำาหนดตวอกษรทผนแปรและใหตวเลขแสดงผลแทนมน SAS จะพยายามแปลงตวอกษรเปนตวเลขโดยใชรปแบบ BEST w โดย w คอความกวางของตวอกษร (จำานวนตวอกษร) และมไดสงสด 32 ตวอกษร SAS จะพยายามดำาเนนการกบรายการ (statement) หากจำานวนตวอกษรผนแปรทใชไมยาวเกนไปเพอแปลงตวอกษรเปนตวเลข

SAS จะพมพหมายเหตในบนทก (log) และกำาหนดตวอกษรทผนแปรดวยเครองหมายดอกจน ถาจำานวนตวอกษรนอยมาก SAS จะไมมขอความแสดงความผดพลาดและกำาหนดความผนแปรของตวอกษรดวยเลข 0

Page 16: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

16 1 November 2013

การแปลงชนดของตวแปรจะเปนไปโดยอตโนมต (SAS บนทกในบางสวน)

4 5 data _null_; 6 x= 3626885; 7 length y $ 4; 8 y=x; 9 put y;

36E5 NOTE: Numeric values have been converted to character values at the places given by: (Number of times) at (Line):(Column). 1 at 8:5

10 data _null_; 11 xl= 3626885; 12 length yl $ 1; 13 yl=xl; 14 xs=0.000005; 15 length ys $ 1; 16 ys=xs; 17 put yl= ys=; 18 run;

NOTE: Invalid character data, XL=3626885.00 , at line 13 column 6. YL=* YS=0 XL=3626885 YL=* XS=5E-6 YS=0 _ERROR_=1 _N_=1

Page 17: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

17 1 November 2013

NOTE: Numeric values have been converted to character values at the places given by: (Number of times) at (Line):(Column). 1 at 13:6 1 at 16:6

ในขนแรกของตวอยาง DATA step, SAS สามารถประมาณคาทเ ห มา ะส มข อ ง Y ให เป น a 4-byte field อ ธ บ า ยกา รป ร ะ ม า ณ ค า เครองหมาย,สญลกษณ ตามหลกวทยาศาสตร ขนทสองของ DATA step, SAS ไมสามารถประมาณคาทเหมาะสมของ YL ใหเปน a 1-byte field และ แสดงเครองหมายดอกจน (*) แทน

Page 18: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

18 1 November 2013

5. การจดตำาแหนงของคาตวแปร ( Aligning Variable Values )

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

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

ตวอยางนกอใหเกดผลลพธตอไปน

Page 19: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

19 1 November 2013

6. ตวแปรอตโนมต ( Automatic Variables )

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

ตวแปรอตโนมตทสรางขนโดยเฉพาะรายงานมเอกสารทมคำาสงเหลานน จากตวอยาง see the BY statement, the MODIFY statement, and the WINDOW statement in SAS Language Reference: Dictionary. คาตวแปรอตโนมต2 คาถกสรางขนจากขอมลทกขนตอน: _N_ and _ERROR_.

_N_ มการตงคาเรมตนถง 1 ในแตละครงทขนตอนขอมลลปจะผานไปยง

รายงานขอมล , ตวแปร_N_เพมขนทละ 1 คาตวแปรของ_N_หมายถงจำานวนครงทขนตอนขอมลทซำาได

Page 20: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

20 1 November 2013

_ERROR_ มการตงคาเรมตนท 0 แตถกตงคาเปน 1 เมอใดกตามทพบขอผด

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

SAS logจากตวอยางแตละคำาสงทงสองทเขยนลงใน SAS log ในระหวางการทำา

ซำาของขอมลแตละขนตอนเนอหาทบนทกการปอนขอมลทเกดขอผดพลาดในการปอนขอมลทพบ

if _error_=1 then put _infile_;

if _error_ then put _infile_;

7. รายการตวแปร SAS ( SAS Variable Lists )

คำานยาม

รายการตวแปร SAS เปนวธการทยากของการอางองถงรายการของชอตวแปร SAS ชวยใหคณสามารถใชรายการตวแปรตอไปน:

Page 21: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

21 1 November 2013

ชวงหมายเลขรายการ ชอชวงรายการ คำานำาหนาชอรายการ รายชอพเศษ SAS

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

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

option.  

Page 22: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

22 1 November 2013

ชวงหมายเลขรายการ

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

x1,x2,x3,...,xn

x1-xnในชวงหมายเลขรายการคณสามารถเรมตนดวยหมายเลขใด ๆ และจบ

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

ตวอยางเชนสมมตวาคณตดสนใจทจะใหบางสวนของตวแปรทเปนตวเลขของชอลำาดบในขณะท VAR1, var2 และอน ๆ จากนนคณสามารถเขยนคำาสง INPUT ดงนinput idnum name $ var1-var3;

หมายเหต: ชอของตวอกษรตวแปรจะไมรวมในรายการตวยอ

ชอชวงรายการ

รายการชวงชอขนอยกบคำาสงของความหมายตวแปรดงแสดงในตารางตอไปน:

ชอชวงรายการ

Page 23: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

23 1 November 2013

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

x-a ตวแปรทงหมดในลำาดบความหมายของตวแปรจาก X รวมทง A

x-numeric-a ตวแปรตวเลขทงหมดจาก X รวมทง Ax-character-a ตวแปรอกขระทงหมดจาก X รวมทง A

คณสามารถใชตวเลอก VARNUM ใน PROC CONTENTS พมพตวแปรในความหมายคำาสง

ตวอยางเชนพจารณาคำาสง INPUT ตอไปน:

input idnum name $ weight pulse chins;In later statements you can use these variable lists: /* keeps only the numeric variables idnum, weight, and pulse */

keep idnum-numeric-pulse;

/* keeps the consecutive variables name, weight, and pulse */

keep name-pulse;

คำานำาหนาชอรายการ

Page 24: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

24 1 November 2013

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

sum(of SALES:)

บอก SAS ในการคำานวณผลรวมของตวแปรทงหมดทขนตนดวย “SALES," such as SALES_JAN, SALES_FEB, และ SALES_MAR.

รายชอพเศษ SAS

รายชอพเศษใน SAS ประกอบดวย

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

ขอมลทเปนปจจบน

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

ขอมลทเปนปจจบน

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

ปจจบน

Page 25: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

25 1 November 2013

8. ก า ร เ ล อ น ก า ร ร ก ษ า แ ล ะ ก า ร เ ป ล ย น ช อ ต ว แ ป ร ( Dropping,Keeping, and Renaming Variables )

ใชคำาสงหรอตวเลอกชดขอมล

ค ำา ส ง DROP, KEEP, แ ล ะ RENAME ห ร อ ค ำา ส ง DROP=, KEEP=, และ RENAME= ควบคมตวแปรโดยการประมวลผลหรอการสงออกในระหวางขนตอนของ DATA คณสามารถใชคำาสงหนงคำาสงหรอใชคำาสงรวมกนและตวเลอกชดขอมลเพอใหไดผลลพธทคณตองการ การกระทำาโดย SAS สวนใหญขนอยกบวาคณตองการผลลพธอยางไร

ใชคำาสงหรอตวเลอกชดขอมลหรอทงสองอยาง ระบชดขอมลทใสหรอขอมลทเปน output data set

Page 26: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

26 1 November 2013

ตารางตอไปนสรปความแตกตางทวไประหวางคำาสง DROP, KEEP และ RENAME และตวเลอกชดขอมล DROP=, KEEP= และ RENAME= Statements เมอเทยบกบ Data Set Options สำาหรบคำาสงการเลอน

การเกบ และการเปลยนชอตวแปร

Statements Data Set Options

ใหผลลพธทเปน output data set เทานน

ใหผลลพธทเปน output หรอ input data sets

มผลกระทบตอ output data sets ทงหมด

มผลกระทบในแตละ data sets.

สามารถใชใน DATA steps เทานน สามารถใชใน DATA steps and PROC steps

สามารถแสดงไดทกทใน DATA steps

ตองเรยกใชงานไดทนทในแตละ data set เมอตองการ

วธการใช Input หรอ Output Data Setคณตองพจารณาไมวาจะเปนเมอคณตองการเลอน เกบรกษา หรอ

เปลยนชอตวแปร หลงจากนนโปรแกรมจะอานคาขอมลหรอเขยน data set

Page 27: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

27 1 November 2013

ชดใหม ถาใชคำาสง DROP, KEEP, หรอ RENAME ตวแปรสมทมการเปลยนแปลงจะถกสงออกเปน data set โดยตวเลอกชดขอมลของ SAS ซงคณตดสนใจเลอกตวเลอกเมอการดำาเนนการเรมขน

ถ าต ว เล อกท ใช ใน input data set เป น dropped kept หรอ renamed กอนทโปรแกรมจะเร มดำาเนนการ ถาใช output data set ตวเลอกชดขอมลทไดทำาการเปลยนแปลงถกกำาหนดเปน data set ชดใหม (ใน DATA step ขอมล input data set จะไดขอมลเพยงหนงเดยวทไดจากคำาสง SET, MERGE หรอ UPDATE โดยท output data set จะได ขอม ล เพยงหน ง เด ยวท ได จากค ำาส ง DATA statement) โดยพจารณาตามความเปนจรงเมอคณตดสนใจเลอกใช

ถาตวแปรไมมใน output data set และเราไมสามารถเรยกใชเพอมาประมวลผล การใช input data set option ทถกแยกออกไปจาก DATA step จะมประสทธภาพมากกวา

ถาคณตองการเปลยนชอตวแปลกอนทำาการประมวลผล DATA step คณตองใชคำาสง RENAME= data set option ในการปอนชดขอมล

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

Page 28: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

28 1 November 2013

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

สถานะของตวแปรและชอตวแปรเมอตวแปรถก Dropping, Keeping และ Renaming

กรณทตองการ ตวเลอกชดขอมลหรอคำา

สง

วตถประสงค สถานะของชอตวแปรหรอ

ตวแปรInput data set

DROP=KEEP=

รวมหรอไมรวมตวแปรจากการประมวลผล

ถาไมรวม ตวแปรจะไมสามารถใชไดสำาหรบการใชงานใน DATA step

RENAME= การเปลยนแปลงชอของตวแปรกอนทจะประมวลผล

ใชชอใหมในคำาสงโปรแกรมและตวเลอกชดแสดงผลขอมล; ใชชอเกาใน ชดแสดงผลขอมล input

Output data set

DROP, KEEP ระบตวแปรทจะถกเขยนลง

ตวแปรทงหมดทมอยสำาหรบประมวล

Page 29: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

29 1 November 2013

ทงหมดของชดขอมลเอาทพท

ผล

RENAME เปลยนแปลงชอของตวแปรในทงหมดของชดขอมลเอาทพท

ใชชอเกาในคำาสงโปรแกรมและตวเลอกชดแสดงผลขอมล; ใชชอใหมในชดแสดงผลขอมล output

DROP=KEEP=

ระบถงตวแปรทถกเขยนไปยงแตละชดขอมลทถกสงออก

ตวแปรทงหมดทมอยสำาหรบประมวลผล

RENAME= เปลยนแปลงชอของตวแปรในทงหมดของชดขอมลเอาทพท

ใชชอเกาในคำาสงโปรแกรมและตวเลอกชดแสดงผลขอมลและจาก ชดแสดงผลขอมล output

การประยกตใช

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

ขนแรกใหเลอกชดขอมลของทานไดรบการประเมนจากซายไปขวาภายในคำาสง SET, MERGE, และ UPDATE สวนคำาสง

Page 30: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

30 1 November 2013

DROP= และ KEEP= options เปนการประยกตกอนทจะใชคำาสง RENAME= option

ในขนตอไป คำาสง DROP และ KEEP เปนการประยกต การปฏบตกอนเมอตองการใชคำาสง RENAME

และสดทายตวเลอกบนชดแสดงผลขอมล output เปนการประเมนจากซายไปขวาภายในคำาสง DATA DROP= และ KEEP= options เปนการประยกต การปฏบตกอนเมอตองการใชคำาสง RENAME

ตวอยาง Dropping, Keeping, และ Renaming Variables

ตวอยางตอไปนแสดงวธการเฉพาะในการจดการ dropping, keeping, และ renaming variables

ตวอยางการใชค ำาสง DROP= และ RENAME= ตวเลอกชดแสดงผลขอมล และฟงกชน INPUT เปนการแปลง ตวแปร POPRANK จากตวอกษรเปนตวเลข POPRANK จะถกเปลยนเปน TEMPVAR กอนทจะประมวลผลเพ อให POPRANK ตวแปรใหมเป น output data set ส ง เ ก ต ว า ต ว แ ป ร TEMPVAR จ ะ ล ด ล ง จ า กก า ร ส ง อ อ ก ช ด ข อ ม ล แ ล ะ TEMPVAR ชอใหมจะถกนำามาใชในคำาสงของโปรแกรม

Page 31: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

31 1 November 2013

ตวอยางการใชคำาสง DROP และ DROP= ตวเลอกชดแสดงผลขอมลในการควบคมการแสดงผลของตวแปรใหมสองตวในชดขอมล SAS คำาสง DROP ใชไดกบทงชดขอมล CORN และ BEAN คณตองใช RENAME = ตวเลอกชดขอมลทจะเปลยนชอเอาทพท ตวแปร BEANWT และ CORNWT ในขอมลแตละชด

ตวอยางนแสดงวธการใชตวเลอกชดแสดงผลขอมลในคำาสง DATA และ คำาสง RENAME รวมกน สงเกตวาชอใหม QTRTOT จะถกนำามาใชในชดคำาสง DROP =

Page 32: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

32 1 November 2013

9. ค ว า ม แ ม น ย ำา ข อ ง ต ว เ ล ข ใ น โ ป ร แ ก ร ม SAS ( Numeric Precision in SAS Software )

วธจดเกบคาของตวเลขใน SAS

ในการจดเกบตวเลขทมจำานวนมากเพอใชในการดำาเนนการทจำาเปนตองมการคำานวณตวเลขจำานวนมากและมความความแมนยำาไปทางดานขวาของจดทศนยม SAS จะเกบคาตวเลขโดยใชขอมลเลขฐานสองแทนเลขทศนยม การแทนเลขทศนยมคอการดำาเนนการของสงทเปนทรจกกนโดยทวไปวาเปนสญลกษณทางวทยาศาสตร ซงคาทแสดงเปนตวเลขระหวาง 0 และ 1 กำาลง 10

ตอไปนเปนตวอยางของตวเลขทอยในสญลกษณทางวทยาศาสตร :.1234×104

ตวเลขในสญลกษณวทยาศาสตรจะประกอบดวยสวนตอไป

Base เปนตวเลขยกกำาลงและในตวอยางน base คอ 10 Mantissa เปนตวเลขคณดวยฐานและในตวอยางน mantissa

เปน 0.1234

Page 33: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

33 1 November 2013

Exponent คอกำาลงทฐานจะเพมขนและในตวอยางน exponent คอ 4

การแสดงเลขทศนยมทเปนรปแบบของสญลกษณทางวทยาศาสตรนอกจากนนในสวนระบบปฏบตการฐานทไมไดเปน 10 แตเปน 2 หรอ 16

ตารางตอไปนจะสรปแนวทางตางๆของตวเลขทศนยมทถกจดเกบอยในพนทขนาด 8 ไบต

สรปตวเลขทศนยมทจดเกบอยในพนทขนาด 8 ไบต

ตวอยาง ฐาน Exponent Bits

Maximum Mantissa Bits

IBM mainframe

16 7 56

IEEE 2 11 52

Page 34: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

34 1 November 2013

SAS ชวยใหการตดทอนตวเลขทศนยมผานทางคำาสง LENGTH ซงจะชวยลดจำานวนของ mantissa bits สำาหรบขอมลเพมเตมเกยวกบผลกระทบของการตดทอนความยาวของตวเลขทถกจดเกบดวยความแมนยำานอย

การแกไขปญหาเกยวกบการเปนตวแทนเลขทศนยม

โดยภาพรวม

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

การแทนเลขทศนยมบนเมนเฟรม IBM

SAS for z / OS ใชแบบเมนเฟรมของไอบเอมแทนขอมลเลขทศนยมดงตอไปน:SEEEEEEE MMMMMMMM MMMMMMMM MMMMMMMMbyte 1 byte 2 byte 3 byte 4

MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMMbyte 5 byte 6 byte 7 byte 8

ตวอยางนสอดคลองกบไบตของขอมล ดวยอกขระแตละตวเปน 1 บตดงน

Page 35: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

35 1 November 2013

S ในไบต 1 เปนบตเครองหมายของตวเลข A มคา 0 ในบตทใชในการแทนตวเลขเปนบวก

อกษร E จำานวน 7 ตวใน byte 1 เปนตวแทนของจำานวนเตมเลขฐานสองทมลกษณะเฉพาะ คณสมบตทแสดงถงเลขชกำาลงและไดมาโดยการเพมความลำาเอยงไปยงสญลกษณเกดขนจรง ความลำาเอยงคอคาชดเชยทใชในการใหสามารถยกกำาลงทงลบและบวกดวยความลำาเอยงทเปนตวแทนของ 0 ถาความลำาเอยงไมไดใชบตเพมเตมสำาหรบเลขชกำาลงจะตองไดรบการจดสรร ตวอยางเชน ถาระบบมพนกงานลำาเอยงจาก 64 ลกษณะเฉพาะ 66 กบคาทแสดงถงเลขชกำาลงของ 2 ในขณะทลกษณะของ 61 เปนเลขชกำาลง -3

ตวอกษร M ทเหลอในไบตท 2 ถง 8 แสดงบตของฐาน มประเดนทสอใหวากอนทบตซายสดของฐาน ดงนนฐานมกจะนอยกวา 1 ระยะทจดใชแทนจดทศนยมเพราะจดทศนยมอนมานไดวาคณใชงานตวเลข (ฐาน 10) ทศนยมซงไมอาจจะไมเกดขน หรอใชรปแบบทวไปของจดทศนยม

เลขยกกำาลงมฐานเดยวกน และเพอไมใหสบสนวามฐานตวไหนทเปนตวแทน โดยจะใชสญลกษณแสดงแทนจะอยในเลขฐานสอง แตสญลกษณทใชในการกำาหนดจำานวนครงทพนฐานควรจะคณดวย mantissa ในกรณของไอบเอม mainframes ฐานของตวแทนคอ 16 สำาหรบเครองอน ๆ กเปนปกต 2 หรอ 16

Page 36: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

36 1 November 2013

แตละบตในฐานเศษสวนทมเศษคอ 1 และทมตวหารเปนกำาลง 2 ตวอยางเชนบตและไบตท 2 แทน ( 1

2)1

บตตอไปแทน ( 12)2

เปนตน กลาวอกนย

หนง ฐานคอผลรวมของชดเศษสวนเชน 12 ,14, 18 และอนๆ เพราะฉะนนสำาหรบ

ตวเลขทศนยมทจะแสดงวาคณตองสามารถถายทอดเปนผลรวมทกลาวมาแลวกอนหนา ตวอยางเชน 100 จะแสดงเปนนพจนตอไปน:

( 14 + 18+ 164 )×162

เพอแสดงวธการแสดงออกดงกลาวจะไดรบทงสองตวอยางตอไปนตวอยางแรกอยในฐาน 10 และ 100 ถกแสดงคาดงตอไปน:

100.

ชวงอยในตวเลขวาเปนจดเรมตน โดยฐานตองนอยกวา 1 ดงนนปกตคานไดโดยเปลยนจดสามแหงไปทางขวาซงกอใหเกดคาตอไปน:

.100เพราะการเปลยนตำาแหนง 3 ตำาแหนงทำาให 3 เปนเลขชกำาลง .100×103 = 100

ตวอยางทสอง เปนฐาน 16 ในเลขฐานสบหก และ 100 (ฐาน 10)จะเขยนดงตอไปน: 64.

การเปลยนจดสองจดไปทางซายกอใหเกดคาตอไปน: .64

Page 37: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

37 1 November 2013

ขยบจดไป 2 ตำาแหนงทำาให 2 เปนเลขชกำาลง จะได .64×162

เลขฐานสองของจำานวนนเปน .01100100 ซงสามารถแสดงในนพจนดงตอไปน:

¿

ในตวอยางนยกกำาลงคอ 2 เพอใชแทนเลขชกำาลงทคณทำาใหเกดความลำาเอยงจาก 64 ไปยงเลขชกำาลงแทนเลขฐานสบหกของคาทเปนผลลพธ, 66, 42 แทน binary จะเปนดงน:

01000010 01100100 00000000 0000000000000000 00000000 00000000 00000000

การแทนเลขทศนยมใน OpenVMSใน OpenVMS, SAS เกบคาทเปนตวเลขในรปแบบ D-floating ซง

มรปแบบดงตอไปน:MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMMbyte 8 byte 7 byte 6 byte 5

MMMMMMMM MMMMMMMM SEEEEEEE EMMMMMMMbyte 4 byte 3 byte 2 byte 1

ในรปแบบ D-floating เลขชกำาลงคอ 8 เศษแทนทจะเปน 7 แตใชฐาน 2 แทนฐาน 16 และทำาใหมความลำาเอยงจาก 128 ซงหมายความวาขนาดของรปแบบ D-floating ไมไดดเทาทขนาดของตวแทนของไอบเอม

Page 38: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

38 1 November 2013

ฐานของรปแบบ D-floating คอ 55 บต อยางไรกตามคาเลขทศนยมภายใต OpenVMS เปนปกตซงหมายความวาบตลำาดบสงสดจะเปน 1 เพราะไมจำาเปนตองเปนตวแทนของบตลำาดบสงใน mantissa ดงนนบตสงสงถกซอนอย

ตวอยาง เชนคาทศนยม 100 แสดงในเลขฐานสองจะเปนดงน: 01100100.

คานเปนคาปกต โดยเปลยนจดดงน: 0.1100100 เพราะจดขยบไปทางซายเจดตำาแหนง เลขยกกำาลง 7 รวมทงความ

ลำาเอยงจาก 128 เปน 135 แสดงอยในไบนารเปนจำานวนดงตอไปน: 10000111

ใหเปนตวแทนของ mantissa ลบดวยบตทซอนจากเขตขอมลสวนหนง: .100100

คณสามารถรวมเครองหมาย (0), เลขยกกำาลงและฐานเพอผลตในรปแบบ D- floating:

MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM00000000 00000000 00000000 00000000

MMMMMMMM MMMMMMMM SEEEEEEE EMMMMMMM00000000 00000000 01000011 11001000

การแสดงจดทศนยมโดยใช IEEE Standard

Page 39: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

39 1 November 2013

สถาบนวศวกรไฟฟาและอเลกทรอนกส (IEEE) แทนจะถกใชโดยระบบปฏบตการจำานวนมากรวมถง Windows และ UNIX แทนมาตรฐาน IEEE ใช เลขช ก ำาล ง 11 บตท ม ฐาน 2 และท ำา ใหมความล ำา เอ ยง 1023 ซ งหมายความวาจะมความสำาคญมากขนกวาการเปนตวแทนไอบเอมเมนเฟรม แตบางคร งท ค าใชจายจาก 3 บตนอยกวาในฐาน ค าของ 1 แทนดวยมาตรฐาน IEEE จะเปนดงน:

3F F0 00 00 00 00 00 00

ความแมนยำาเมอเทยบกบขนาด

ตามทกลาวไวในสวนกอนหนานการเปนตวแทนเลขทศนยมชวยใหตวเลขขนาดใหญมาก (ตวเลขเชน 2 ถงกำาลง 30) และองศาความแมนยำาสง (จำานวนตวเลขทอยทางขวาของทศนยม) อยางไรกตามระบบปฏบตการทแตกตางกนเกยวกบวธการมากความแมนยำาและวธการทจะชวยใหมประสทธภาพ

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

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

Page 40: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

40 1 November 2013

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

ขอควรพจารณาในการคำานวณของเรองเศษสวน

โดยไมคำานงถงวธการมากความแมนยำามอยยงคงมปญหาทตวเลขบางอยางไมสามารถแสดง ในระบบเลขทศนยม เศษสวน 1/3 ไมสามารถแสดงวาในทศนยม ในทำานองเดยวกนเศษสวนทศนยมมากทสด (เชน 0.1) ไมสามารถแสดงวาในฐาน 2 หรอฐาน 16 เลขระบบ นคอเหตผลหลกสำาหรบการยากลำาบากในการจดเกบตวเลขทเปนเศษสวนในการเปนตวแทนขอมลเลขทศนยม

พจารณาแทนเมนเฟรมของไอบเอม 0.1: 40 19 99 99 99 99 99 99

ใหสงเกตเลขทาย 9 หลกคลายคลงกบเลขทาย 3 หลกในการเปนตวแทนทศนยมพยายาม 1/3 (0.3333 ... ) ขาดความแมนยำานจะความรำาคาญโดยดำาเนนการเลขคณต พจารณาสงทจะเกดขนถาคณเพมการแสดงทศนยม 1/3 หลายครง เมอคณเพม .33333 ... เพอ .99999 ... คำาตอบทางทฤษฎคอ 1.33333 ... 2 แตในทางปฏบตคำาตอบนเปนไปไมได ผลรวมจะกลายเปนไมแนนอนเปนคาดำาเนนการ

Page 41: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

41 1 November 2013

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

ขอความ AT ZERO ในขนตอนทขอมลจะไมพมพเพราะการสะสมของจำานวนไมแนชดนำาเสนอขอผดพลาดพอทจะทำาใหคาทแนนอนจาก 0 เปนไมเคยพบ จำานวนอยใกล แตไมเคยใหได 0 ปญหานจะแกไขไดอยางงายดายโดยการปดเศษอยางชดเจนกบแตละซำาเปนขอความตอไปนแสดง:

Page 42: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

42 1 November 2013

การพจารณาการเปรยบเทยบตวเลข

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

อยางไรกตามหากคณเพมฟงกชนเชนในตวอยางตอไปนคำาสง PUT จะถกดำาเนน การ:

Page 43: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

43 1 November 2013

โดยทวไปถาคณกำาลงทำาเปรยบเทยบกบคาทเปนเศษสวนกคอการปฏบตทดในการใชฟงกชน ROUND

การจดเกบตวเลขทมความแมนยำานอย

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

ตวอยางเชนการเปนตวแทนเมนเฟรมของไอบเอมใช 8 ไบตสำาหรบความแมนยำาเตม แตคณสามารถเกบเพยงเปน 2 ไบตบนดสก คา 1 จะแสดงเปน 41 10 00 00 00 00 00 00 ใน 8 ไบต ใน 2 ไบตกจะตดคา 41 10 ออกไป คณยงมชวงเตมของความสำาคญเพราะตวแทนยงคงเหมอนเดม มตวเลขเพยงนอยทเกยวของ ลดลงในจำานวนของตวเลขหลกหมายความวาอยางใดอยางหนงนอยลงไปทางขวาของสถานททศนยมหรอตวเลขทนอยลง

ต ว อ ย า ง เ ช น พ จ า ร ณ า ห ม า ย เ ล ข 1234567890 ซ ง จ ะ เ ป น .1234567890 ยกกำาลง 10 จาก 10 (ในฐาน 10) หากคณมเพยงหาหลกความเทยงตรงเลขจะกลายเปน 123460000 (ปดเศษขน) โปรดสงเกตวาเ ป น ก ร ณ น ไ ม ค ำา น ง ถ ง ก ำา ล ง ข อ ง 10 ท ใ ช (0.12346, 12.346, .0000012346, และอน ๆ )

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

Page 44: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

44 1 November 2013

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

พจารณาความยาวของ 2 ไบตเมอระบบเมนเฟรมของไอบเอม คานสำาหรบการ 1 ไบตในการจดเกบสญลกษณและเขาสระบบและ 1 ไบตสำาหรบแมนทสคาทมากทสดทสามารถเกบไวใน 1 ไบตคอ 255 ดงนนหากตวแทนเปน 0 (16 หมายถงอำานาจท 0 หรอ 1 คณดวยฐาน) จากนนจำานวนเตมทใหญทสดทสามารถเกบไวดวยความเชอมนทสมบรณแบบคอ 255 อยางไรกตามบางคนจำานวนเตมขนาดใหญสามารถเกบไวเพราะรายการ 16 รายการ ตวอยางเชนพจารณาแทน 8 ไบตของตวเลข 256-272 ในตารางตอไปน:

การแสดงหมายเลข 256-272 ใน 8 ไบต

คา Sign/Exp

Mantissa 1

Mantissa 2-7

ขอควรพจารณา

256 43 10 000000000000

เลข 0 ตวทายมจำานวน 16 ตว

257 43 10 100000000000

ไบตพเศษทจำาเปน

258 43 10 200000000000

259 43 10 300000000000

. . . . .

. . . . .

. . . . .271 43 10 F0000000

0000

Page 45: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

45 1 November 2013

272 43 11 000000000000

เลข 0 ตวทายมจำานวน 16 ตว

หมายเลข 257-271 ไมสามารถเกบไววาเปนครงแรกใน 2 ไบต ไบตทสามจำาเปนตองเกบหมายเลขแนนอน เปนผลใหรหสตอไปนกอใหเกดผลลพธทผด:

คำาสง PUT จะไมดำาเนนการเนองจากคาของ X เปน 256 (คา 257 ตดออกไป 2 ไบต) เรยกวา 256 ถกเกบไวในไบตท 2 เปน 4310 แต 257 ยงถกเกบไวในไบตท 2 เปน 4310 ดวยไบตทสามของเมอ 10 ถกตดออก

Page 46: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

46 1 November 2013

คณจะไดรบการเตอนวาคา 257 ถกตดออกในขนตอนแรกไมมขอมล อยางไรกตามซง Y1 มคา 258 เนองจากคาของ x จะถกเกบไวในเตม 8 ไบตแทนเลขทศนยมในโปรแกรมแบบเวกเตอรขอมล คาจะถกตดทอนเฉพาะเมอเกบไวในชดขอมล SAS Y2 มคา 257, X เพราะกอนทจะถกตดทอนตวเลขทอานในเวกเตอรโปรแกรมขอมล

ขอควรระวง:

o อยาใชคำาสง LENGTH ถาคาตวแปรของคณไมไดเปนจำานวนเตม

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

การตดทอนตวเลขและทำาการเปรยบเทยบ

ฟงกชน TRUNC จะตดตวเลขความยาวทตองการแลวกลบขยายตวเลขความยาวเตมรป การตดและการขยายตวทตามมาซ ำาผลกระทบของตวเลขการจดเกบในเวลาทนอยกวาความยาวเตมรปแบบและจากนนจะอานคา ตวอยางเชนถาตวแปร x=1/3;

จะถกเกบไวขนาดความยาว 3 แลวเปรยบเทยบตอไปนไมจรง: if x=1/3 then ...;

อยางไรกตามการเพมฟงกชน TRUNC ทำาใหการเปรยบเทยบทแทจรงเชนเดยวกนดงตอไปน:

Page 47: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

47 1 November 2013

if x=trunc(1/3,3) then ...;

การกำาหนดจำานวนไบตทมความจำาเปนเพอเกบหมายเลขอยางถกตอง

เพอกำาหนดจำานวนขนตำาของไบตทจำาเปนในการเกบคาอยางถกตองคณสามารถใชฟงกชน TRUNC ตวอยางเชนโปรแกรมตอไปนพบวาความยาวขนตำาของไบต (MINLEN) ทจำาเปนสำาหรบตวเลขทจดเกบไวในขอมล SAS ชดพนเมองชอ NUMBERS ขอมลหมายเลขชดประกอบดวยชดคาตวแปร มลคามชวงของตวเลขในตวอยางน 269-272:

ผลลพธตอ ไปนแสดงใหเหนถงผลท ไดจากโคดน

ใชฟงกชน TRUNC

Page 48: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

48 1 November 2013

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

ความแมนยำาสองเทากบความแมนยำาเดยวของตวเลขทศนยม

อาจมขอมลทสรางขนโดยโปรแกรมภายนอกทคณตองการอานในชดขอมล SAS หากขอมลทอยในการแทนเลขทศนยมคณสามารถใช informat RBw.d การอานในขอมล แตมขอยกเวน

informat RBw.d อาจตดทอนตวเลขทศนยมความแมนยำาสองถาคา w นอยกวาขนาดของความแมนยำาสองตวเลขเลขทศนยม (8 ในทกระบบปฏบตการทกลาวถงในสวนน) ดงนน RB8 informat สอดคลองกบเตมรป 8 ไบตจดลอย RB4 informat สอดคลองกบ 8 ไบตลอยจดตดออกไป 4 ไบตตรงเชนเดยวกบความยาวท 4 ในขนตอนขอมล

Page 49: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

49 1 November 2013

8 ไบตจดทศนยมทถกตดออกไป 4 ไบตอาจจะไมเปนเชนเดยวกบการโฟลในโปรแกรม C ในภาษา C, 8 ไบตตวเลขเลขทศนยมเรยกวาค ใน FORTRAN มนเปนจรง * 8 ของไอบเอมใน PL / ฉนมนเปนไบนาร FLOAT (53)4 ไบตต วเลขเลขทศนยมเรยกวาลอยในภาษา C, REAL * 4 ใน FORTRAN และไบนาร FLOAT (21) ของไอบเอมใน PL / I.

บนเมนเฟรมคอมพวเตอร IBM, หมายเลขเดยวแมนยำาเลขทศนยมอยตรงเชนเดยวกบตวเลขความแมนยำาสองตดออกไป 4 ไบต บนระบบปฏบตการทใชมาตรฐาน IEEE นไมไดเปนคดเดยวจำานวนของความแมนยำาเลขทศนยมใชเปนจำานวนทแตกตางกนของบตสำาหรบเลขยกกำาลงและใชความลำาเอยงทแตกตางกนเพอใหการอานคาในการใช RB4 informat ไมกอใหเกดผลทคาดหวงไว

การถายโอนขอมลระหวางระบบปฏบตการ

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

Page 50: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

50 1 November 2013

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

พจารณาเชนการขนสงขอมลระหวางเครองคอมพวเตอรเมนเฟรมของไอบเอมและ PC เมนเฟรมของไอบเอมมการ จำากด ชวงประมาณ 0.54 E-78-0.72 E76 (และรายการเทยบเทาเชงลบของพวกเขาและ 0) ตวเลขทศนยมของ เครองอน ๆ เชนเครองคอมพวเตอรทมขอ จำากด มากขน (พซมขด จำากด บนของประมาณ 1E308) ดงนนถาคณกำาลงถายโอนตวเลขในขนาดของ 1E100 จากพซไปยงเมนเฟรมคณสญเสยทสำาคญ ในระหวางการถายโอนขอมลตวเลขทถกกำาหนดเปนขนตำาหรอสงสดทอนญาตบนระบบปฏบตการทดงนน 1E100 ในเครองคอมพวเตอรจะถกแปลงเปนคาทจะอยทประมาณ 0.72 E76 บนเมนเฟรมของไอบเอม

ขอควรระวง:

o การถายโอนขอมลระหวางเครองจะมผลตอความแมนยำาของตวเลข

หากคณถายโอนขอมลจากเครองคอมพวเตอรเมนเฟรมของไอบเอมกบเคร องคอมพวเตอรทแจงใหทราบวาจำานวนของบตสำาหรบฐานคอ 4 ทนอย

Page 51: home.kku.ac.th Variables... · Web viewในต วอย างน ยกกำล งค อ 2 เพ อใช แทนเลขช กำล งท ค ณทำให เก

51 1 November 2013

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