40
1 กกกกกกกกกกกกกกกก 1. กกกกกกกกกกกกกกกกกกกกกกกกกกกกก กกก(Definition of Reading Raw Data) กกกกกกกกก เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ SASdata set เเเเเเเเเ Data Step เเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเ -เเเเเเเเเเเเ - เเเเเเเเเเเเเ กกกกกกกกกกก - เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ (DBMS) - เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ (DBMS) เเเเ เเเเเเเเเเเเเเเเเเเเเเเ SAS/ACSESS กกกกกกกกกกกกกกกกกกกกกกก LIBNAME เเเเเเเเเเเเเเเ LIBNAME เเเเเเเเเ SAS/ACSESS เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ 7 เเเเเเเเเเเเ เเเ SAS libref เเเเเเเเเเเเ เเเเเเเเเเเเเเ เเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเ DBMS เเเเเเเเเเเเเเ LIBNAMES SAS/ACSESS เเเเเเเเเเเเเเ เเเเเเเ Base SAS LIBNAME เเเเ เเเเเเ เเเเเเ Oracle เเเเเเเเเเเเเเเเเเเ libnamemydblib oracle user=smith password=secret path='myoracleserver'; เเเเเเเ LIBNAME เเเเเเเเเเเเเเ ORACLE เเเเเเเเเเเเเ เเเเ :เเเเเเ =,เเเเเเเเ=,เเเเเเเเเเเเ=, เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ SAS/ACCESS LIBNAME เเเเเ เเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเเ เเเเเเเเเเเเเเ

home.kku.ac.th Raw... · Web viewlibnamemydblib oracle user=smith password=secret path='myoracleserver'; คำส งLIBNAMEจะเช อมต อก บORACLE โดยต องทำการระบ

  • Upload
    hakhue

  • View
    222

  • Download
    1

Embed Size (px)

Citation preview

1

การอานขอมลดบ

1. คำาจำากดความของการอานขอมลดบ(Definition of Reading Raw Data)

ขอมลดบ เปนขอมลทยงไมผานการอนพทดวยโปรแกรม SASdata set โดยสามารถ

Data Step ในการอานขอมลดบไดโดยใชวธตอไปน-ไฟลจากภายใน- ไฟลจากภายนอก

ขอควรระวง- ขอมลดบไมรวมถงระบบการจดการฐานขอมล (DBMS)- หากตองการเขาถงการใชงานไฟลประเภท (DBMS) ตองมใบอนญาตการใชโปรแกรม SAS/ACSESS

กลไกการทำางานของคำาสง LIBNAME

สถานะของคำาสง LIBNAME ในโปรแกรม SAS/ACSESSในการเรมตนการใชงานในเวอรชน 7 สามารถเชอมโยง SAS libref จากฐาน

ขอมล คยเซอรเวอร หรอตารางตางๆตามความสะดวกในการใชงาน ซงหากตองการใชงานไฟลขอมลประเภท DBMS ตองใชคำาสง LIBNAMES SAS/ACSESS ซงแตกตางจาก คำาสง Base SAS LIBNAME เชน ขอมลประเภท Oracle จงสามารถใชคำาสง

libnamemydblib oracle user=smith password=secret path='myoracleserver';คำาสง LIBNAME จะเชอมตอกบ ORACLE โดยตองทำาการระบ :ผใช =,รหส

ผาน=,แหลงทอย=,นอกจากนยงสามารถเลอกคำาสง SAS/ACCESS LIBNAME ในการควบคมการประมวลผลและขอมลทถกสรางขนโดยใชตวเลอกเพมเตม

2

คณสามารถใชDATA step, SAS procedures, หรอ the Explorer window ในการแสดงหรอแกไขไฟลขอมลประเภท DBMS

ตวเลอกการใชงานของ Data Set ของคำาสง SAS/ACCESS Librefsหลงจากเลอกใชไฟลขอมลประเภท DBMS สามารถใชตวเลอกของคำาสง

SAS/ACSESS data set และ Base SAS ในขอมลไดดงตวอยางตอไปน ขอมลประเภท Librefs และ DB2 โดยใชกระบวนการ SQL ในการรวบรวมและตรวจสอบขอมล

libname mydb2lib db2;procsql;select * from mydb2lib.employees(drop=salary)wheredept='Accounting';quit;

คำาสง LIBNAME จะเชอมตอกบขอมล DB2 คณจงสามารถทำาการอางองขอมลประเภท DMBSตารางขอมล DB2 จากชอลำาดบท 2 ทประกอบดวย libref และชอของไฟล DBMS อกคำาสงใน Data set คอDROP=กรณผลลพธบนตาราง DB2 ซงเปนขอมลทไดรบการยกเวนจากการตรวจสอบ

คำาชแจงของคำาสง SAS/ACSESS LIBNAME ใน PROC จากมมมองของ SQL

คณสามารถใชคำาสง SAS/ACSESS LIBNAME ดวยตนเองซงแสดงใหเหนในตวอยางกอนหนาน หรอ CREATE VIEW ของ PROC จากมมมองของ SQL โดย

3

การใชงาน CREATE VIEW จะทำาใหคณสามารถจดเกบขอมลการเชอมตอของไฟล DBMS จากคำาสง SAS/ACSESS LIBNAME โดยมตวอยางการใชงานดงน

libnameviewlib 'SAS-data-library'; procsql;create view viewlib.emp_view asselect * frommydblib.employeesusinglibnamemydblib oracle user=smith password=secret path='myoraclepath';quit;

ขนตอนการดำาเนนของ SQL Pass-Through Facility

ขนตอนการดำาเนนของ SQL ผานตวชวยอำานวยความสะดวก คอ สวนหนงทจะชวยใหคณสงขอมลแบบจำาเพาะและขอมลทผานการกคน โดยการใช DBMS SQLsyntax แทนการ ใชSAS SQL syntax เมอใชPass-Through Facility ใน PROC SQL

Pass-Through Facility ประกอบดวย 3 สถานะและ 1 สวนประกอบ-CONNECT สรางการเชอมตอกบ DBMS- EXECUTE สงการเปลยนแลงและขอมลทไมเฉพาะเจาะจงใหกบ DBMS SQL- CONNECTION TO เปนสวนประกอบของ FORM จาก PROC SQL SELECT ซงจะดงขอมลโดยตรงจาก DBMS- DISCONNECT ใชในการยตการเชอมตอกบ DBMS

ตวอยางของการใชPass-Through Facility ซงจะสงขอมลไปยงสวนของการประมวลผล

procsql;connect to oracle as myconn (user=smith password=secret path='myoracleserver');select *

4

from connection to myconn (selectempid, lastname, firstname, salaryfrom employeeswhere salary>75000);disconnect from myconn;quit;

ตวอยางของการใช Pass-Through Facility

ซงจะสงขอมลไปยงสวนของการประมวลผลในการเชอมตอกบ ORACLE กบและฐานขอมล โดยมคาทตองระบคอ ชอผใช=, รหสผาน=, แหลงทอย=, ซงการเชอมตอกบ FORM ของคำาสง SELECT ชวยใหขอมลถกดงออกจากฐานขอมลในการรวบรวมขอมลจากมมมองของของ PROC SQL โดยใชคำาสง CREATE VIEW

libnameviewlib'SAS-data-library';procsql; connect to oracle as myconn (user=smith password=secret path='myoracleserver'); create view viewlib.salary asselect * from connection to myconn (selectempid, lastname, firstname, salary from employees where salary>75000); disconnect from myconn; quit;

5

ขนตอนในการเขาถงและเครองมอในการเชอมตอ (ACCESS Procedure and Interface View Engine)

ขนตอนในการเขาถงชวยใหคณสามารถสรางทางเลอกในการเขาถงซงเปนไฟล SAS ประเภท ACSESSซงจะอธบายเกยวกบขอมลทเรามรวมทงจะอธบายถงการสราง SAS/ACCESSview เรยกวาการอธบายมมมอง โดย View นเปน เพยงบางสวนของ SAS Data view ซงสามารถใชไดโดยการใชคำาสง PROC SQL

ขอสงเกต: ถาคำาสง LIBNAME สามารถใชไดกบ DBMS ขอแนะนำาใหคณใช SAS/ACCESS LIBNAME ในการประมวลผลขอมลประเถท DBMS แทนการใช access descriptors and view descriptors อยางไรกตาม descriptors จะทำางานทนทในโปรแกรม DBMSvertion 6 ,โปรแกรม SAS รนใหม ซงจะไมรองรบการใชงานเมอคณใช descriptors

ตวอยางในการใช descriptors และ view descriptor โดยใชขนตอนของ PROC ในการกคนไฟลตาราง DB2:

libname adlib 'SAS-data-library';libnamevlib 'SAS'-data-library';

proc access dbms=db2;createadlib.order.access;table=sasdemo.orders;assign=no;list all;

createvlib.custord.view;selectordernumstocknumshipto;

formatordernum 5.stocknum 4.;

6

run;

proc print data=vlib.custord;run;

เมอคณตองการทจะใช descriptors และ descriptors view อบดบแรกในการสรางการเขาถง descriptors คอ ใชโปรแกรม SAS ในการดงขอมลเฉพาะจากตาราง DBMS ทคณตองการ

หลงจากททำาการสรางการเขาถง descriptors ขนตอนทสองคอการสราง view descriptors ซงอาจมมากกวาหนง เพอทจะทำาการเกบขอมลของ DBMS โดยใหคณเลอกรปแบบการจดการของตวแปลจาก viewing, printing, หรอ storing จากโปรแกรม SAS

ใน Interface view จะชวยใหคณสามารถอางองเกยวกบ two-level SAS name ในขอมลหรอในขนตอนของ PROC ดงทเหนในตวอยางขนตอนของ PROC PRINTขนตอนของ DBLOAD(DBLOAD Procedure)ขนตอนของ DBLOAD เปนขนตอนททำาใหคณสามารถดงขอมลหรอตารางเขาส DBMS จาก SAS data set, Data view, data file หรอการเพมขอมลไปยงทายตาราง นอกจากนยงชวยใหคณไมตองตรวจสอบ non-query DBMS-specific SQL ใหกบ DBMS

ขอสงเกต: ถาคำาสง LIBNAME สามารถใชงานไดใน DBMS ขอแนะนำาใหคณใช SAS/ACCESS LIBNAME ในการสรางขอมล DBMS แทนการใช DBLOAD อยางไรกตาม DBLOAD จะทำางานทนทในโปรแกรม DBMSvertion 6 ,โปรแกรม SAS รนใหม ซงจะไมรองรบการใชงานเมอคณใชDBLOAD

ตวอยางในการสราง SAS data set ชอวา INVDATA ลงในตาราง ORACLE ชอวา INVOICE

procdbloaddbms=oracle data=invdata append;user=smith;password=secret;path='myoracleserver';table=invoice;

7

load;run;

อนเตอรเฟซของเครองมอ DATA Step (Interface DATA Step Engine)

ในบางโปรแกรมของ SAS/ACCESS สามารถรองรบการใชงานอนเตอรเฟซของ DATA Step ไดโดยทำาใหสามารถอานขอมล DBMS ไดซงในบางโปรแกรม DATA Step จะรองรบการใชงานทงการอานขอมลและการเขยนขอมลลงในโปรแกรม

ขนตอนของ DATA Step

- INFILE ระบตำาแหนงขอมลทตองการ

- INPUT การดงขอมลจาตำาแหนงทตองการ

- FILE ระบตำาแหนงของขอมลทตองการแกไข

- PUT การอพเดทขอมลทตองการแกไข

ตวอยางการแกไขจากฐานขอมล IBM โดยการใชคำาสง FILE และ INFILE

data _null_;setbank.customer;length ssa1 $9;infileaccupdt dli call=funcdbname=dbssa=ssa1;fileaccupdt dli;func = 'isrt';db = 'account'; ssa1 = 'customer';

put @1 ssnumber $char11.

8

@12 custname $char40.@52 addr1 $char30.@82 addr2 $char30. @112 custcity $char28. @140 custstat $char2. @142 custland $char20. @162 custzip $char10. @172 h_phone $char12. @184 o_phone $char12.;

if _error_ = 1 thenabortabend 888;run;

2. Ways to Read Raw Data : วธการอานขอมลดบ

คณสามารถอานขอมลดบโดยใช :

• คำาแถลงการณของ sas

• ฟงกชน SAS

• รปแบบไฟลจากภายนอก (EFI)

• ตวชวยสรางการนำาเขา

เมอคณอานขอมลดบทมขนตอนขอมล ทคณสามารถใชการไดรวมกนของ INPUT, DATALINES และรายงาน INFILE sas อานขอมลของคณเมอคณใชคำาสงเหลานโดยอตโนมต สำาหรบขอมลเพมเตมเกยวกบงบเหลานใหดการอานขอมลดบท

9

มคำาชแจง INPUTReading Raw Data with the INPUT Statement: การอานขอมลดบทมคำาชแจงอนพต

3. Kinds of Data : ชนดของขอมล

ขอมลตวเลข

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

ขอมลตวอกษรเปนลำาดบของตวอกษร

ขอมลมาตรฐานเปนตวอกษรหรอคาตวเลขทสามารถอาน รายการ คอลมน การจดรปแบบหรอการปอนชอขอมล

ตวอยางของขอมลมาตรฐาน ไดแก

• ARKANSAS• 1,166.42

ขอมลทไมเปนมาตรฐาน

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

10

ขอมลทเปนตวเลข

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

Reading Different Types of Numeric DataExample of Numeric Data

Description Solution Required to Read

Standard Numeric Data23 input right aligned None needed23 input not aligned None needed23 input left aligned None needed00023 input with leading

zeroesNone needed

23.0 input with decimal point

None needed

2.3E1 in E-notation, 2.30 (ss1)

None needed

230E-1 in E-notation, 230x10 (ss-1)

None needed

-23 minus sign for negative numbers

None needed

Nonstandard Numeric Data2 3 embedded blank COMMA. or BZ.

informat- 23 embedded blank COMMA. or BZ.

informat2,341 comma COMMA. informat(23) parentheses COMMA. informatC4A2 hexadecimal value HEX. informat1MAR90 date value DATE. informat

Invalid Numeric Data23 - minus sign follows Put minus sign

11

number before number or solve programmatically. (table note 1)

.. double instead of single periods

Code missing values as a single period or use the ?? modifier in the INPUT statement to code any invalid input value as a missing value.

J23 not a number Read as a character value, or edit the raw data to change it to a valid number.

หมายเหตตาราง 1:อาจเปนไปไดทจะใช informat S370FZDTw.d แตคาบวกตองใชเครองหมายบวกทตอทาย (+)

จำากฎตอไปนสำาหรบการอานขอมลทเปนตวเลข:

•วงเลบหรอเครองหมายลบกอนตวเลข (ไม วาง แทรก)หมายถงคาลบ

•เลขศนยนำาหนาและตำาแหนงของคาในฟลดหรอการปอนชอขอมลทไมไดสงผลกระทบตอคาทกำาหนดใหตวแปร เลขศนยนำาหนาและตอทายชองวางทไมไดเกบไวดวยคา ซงแตกตางจากบางภาษา SAS ไมไดอานชองวางทตามหลงเปนเลขศนยตามคาเรมตน ตองการใหชองวางทตอทายจะอานไดศนยโดยใช BZ informat อธบายไวใน SAS ภาษาอางอง: พจนานกรม

•ขอมลทเปนตวเลขอาจนำาหนาและตามหลงชองวาง แตไมสามารถมชองวางทฝงอย (ยกเวนกรณทพวกเขาจะอานดวยเครองหมายจลภาค. หรอ informat BZ.)

12

•ในการอานคาทศนยมจากเสนทนำาเขาทไมมจดทศนยมทชดเจนระบตำาแหนงของจดทศนยมในอยโดยใชพารามเตอรทศนยมกบขอมลหรอคอลมน informat กบขอมลทจดรปแบบ ดคำาอธบายแบบเตมของคำาสง INPUT ใน SAS ภาษาอางอง: พจนานกรมสำาหรบขอมลเพมเตม จดทศนยมชดเจนในขอมลทปอนเขาแทนทใด ๆ ทศนยมขอกำาหนดในคำาสง INPUT

ขอมลตวอกษร

คาทอานดวยคำาสง INPUT จะถอวาเปนคาตวอกษรหากอยางใดอยางหนงตอไปนเปนจรง:

•เครองหมายดอลลาร ($) ดงนตวแปรในคำาสง INPUT • informat ตวอกษรถกนำามาใช

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

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

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

ตวอกษรในขอมล ใชอยางไร เหตผลชองวางทนำาหนาหรอตอทายทคณตองการร

การปอนขอมลและการจดรปแบบ $ CHARw informat

อนพตภายนอกขอมชนนำาและลากชองวางจากคาตวอกษรกอนคาท

13

กำาหนดใหกบตวแปรเครองหมายอฒภาคในขอมลสตรม

DATALINES4 หรอ CARDS4 คำาสงและเครองหมายอฒภาคทงส (;;;;) เพอทำาเครองหมายจดสนสดของขอมล

กบ DATALINES ปกตและคำาสงการดเครองหมายอฒภาคในขอมลกอนสงสญญาณการสนสดของขอมล

ตวคนตวอกษรวางหรอเงอนไขทยกมา

ตวเลอก DSD มตวเลอก DELIMITER = เมอคำาสง INFILE

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

โปรดจำาไววาตอไปนเมอมการอานขอมลตวอกษร:

•ในขนตอนขอมลเมอคณวางเครองหมายดอลลาร ($) หลงชอตวแปรในคำาสง INPUT ขอมลตวอกษรทถกอานจากสายขอมลยงคงอยในกรณทเดม ถาคณตองการ SAS เพออานขอมลจากสายขอมลเปนตวพมพใหญใชตวเลอกระบบ CAPS หรอ $ informat UPCASE

•หากคาทสนกวาความยาวของตวแปร, SAS เพมชองวางททายของคาใหคาความยาวทระบ กระบวนการนเรยกวา padding

4.Sources of Raw Data : แหลงทมาของขอมลดบ

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

data weight; input PatientID $ Week1 Week8 Week16; loss=Week1-Week16;

14

datalines;2477 195 177 1632431 220 213 1982456 173 166 1552412 135 125 116;

หมายเหต : เครองหมายอฒภาคทปรากฏตามลำาพงบนบรรทดทนทหลงจากทสายขอมลลาสดคอการประชมทใชในตวอยางน แตคำาสง PROC คำาสงขอมลหรอคำาสงสวนกลางสนสดในอฒภาคในบรรทดทนทตอไปนสายขอมลลาสดยงสงขนตอนขอมลกอนหนาน

ตวอยางตอไปนอานในขอมลสตรมทมเครองหมายอฒภาค:

data weight; input PatientID $ Week1 Week8 Week16; loss=Week1-Week16; datalines4;24;77 195 177 16324;31 220 213 19824;56 173 166 15524;12 135 125 116;;;;

External Files : ไฟลจากขางนอกตวอยางตอไปนแสดงใหเหนถงวธการอานในขอมลดบจากแฟมภายนอกโดยใช INFILE และคำาสง INPUT:

data weight; infile file-specification or path-name; input PatientID $ Week1 Week8 Week16; loss=Week1-Week16;run;

15

5. การอานขอมลดบ ดวยคำาสง INPUT การเลอกรปแบบของ INPUT

คำาสง INPUT ใชอานขอมลดบจากสายขอมลสตรมหรอไฟลจากภายนอกเปนชดขอมล SAS ซงสามารถใชรปแบบการปอนขอมลทแตกตางกนซงจะขนอยกบรปแบบของคาขอมลในการบนทก ดงตอไปน- การอานเขาแบบเรยงลำาดบ  list input-การอานเขาแบบระบตำาแหนง  column input-การอานขอมลแบบมรปแบบ formatted input-การอานขอมลแบบชอ  named input.

นอกจากนยงสามารถรวมรปแบบการปอนขอมลใน INPUT เดยวไดดวย ซงรายละเอยดเกยวกบรปแบบสมารถดไดทคำาสง INPUT ใน SAS ภาษาอางอง: พจนานกรม .

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

ตองสอดคลองกนในคอลมน แตจะตองคนดวย blank อยางนอยหนง (หรออน ๆ ทกำาหนดเปนตวคน) ใน List Input ตองระบชอตวแปรและเครองหมายดอลลาร ($) ถากำาหนดตวแปรเปนตวอกษร และไมตองระบlocation ของขอมลตวอยางของ List Input ดงน:

data scores; length name $ 12; input name $ score1 score2; datalines;Riley 1132 1187Henderson 1015 1102;การปอนขอมลรายชอยงมขอจำากดอกหลายชนดขอมล ซงสามารถอานได:

- คาทปอนเขาจะตองคนดวย blank อยางนอยหนงคา (คาเรมตนของตวคน) หรอระบตวคนดวย DLM = หรอ DLMSTR = option ใน INFILE ถาตองการทจะให SAS อานตวคนตอเนองในขณะทมคาทหายไประหวางทระบ จะใชตวเลอก DSD ใน INFILE

16

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

ตวแปรโดยใช LENGTH, INFORMAT, หรอ ATTRIB กอนคำาสง INPUT หรอใชในการแกไข list input ซงประกอบดวย informat ในคำาสง INPUT 

- คาของขอมลจะไมมชองวางเมอแฟมถกคนดวย blank- ฟลดทตองอานใน order- ขอมลจะตองอยในรปแบบตวเลขหรอตวอกษรมาตรฐาน

หมายเหต:    คาตวเลขทไมเปนมาตรฐานเชนขอมลเลขทศนยมจะตองใชรปแบบการจดรปแบบของใน input

Modified List Input :การดดแปลง List Inputเพอเพมความยดหยนมากขนของ list input ,เราเรยกวาการแกไข listInput

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

-เครองหมาย& (ampersand) ชวยใหอานคาตวอกษรทมblank มากกวาหนง อยกบขอมลและระบ informat  SAS จะอานจนกวาจะพบ blank ตดตอกนสองคาตามระยะเวลาทกำาหนดไวในตวแปรหรอจดสนสดของบรรทดใน input ซงแลวแตอนไหนมากอน

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

-เครองหมาย ~ (tilde) ชวยใหอานและเกบรกษาเครองหมายอญประกาศอนเดยว เครองหมายอญประกาศคและตวคนภายในคาตวอกษร

17

ตวอยางของการใช : และ ~ คณตองใชตวเลอก DSD ใน INFILE มฉะนนคำาสง INPUT จะละเวน ~data scores; infile datalines dsd; input Name : $9. Score1-Score3 Team ~ $25. Div $; datalines;Smith,12,22,46,"Green Hornets, Atlanta",AAA Mitchel,23,19,25,"High Volts, Portland",AAA Jones,09,17,54,"Vulcans, Las Vegas",AA ;

proc print data=scores noobs; run;output จากการตวออยาง Name Score1 Score2 Score3 Team Div

Smith 12 22 46 "Green Hornets, Atlanta" AAA Mitchel 23 19 25 "High Volts, Portland" AAA Jones 9 17 54 "Vulcans, Las Vegas" AA

Column Input การอานเขาแบบระบตำาแหนง  

Column Input ชวยใหอานคาขอมลมาตรฐานทมความชดกนในคอลมนตางๆในเรคอรดขอมล ระบชอตวแปรตามดวยเครองหมายดอลลารไซน ($) ถาเปนตวแปรตวอกษรและจะระบคอลมนทคาของขอมลทอยในแตละเรคอรด

data scores; infile datalines truncover; input name $ 1-12 score2 17-20 score1 27-30; datalines;Riley 1132 987

18

Henderson 1015 1102;

หมายเหต:    ใชตวเลอก TRUNCOVER ใน INFILE เพอใหแนใจวา SAS จดการขอมลความยาวทแตกตางกนอยางเหมาะสม  

ลกษณะขอมลทใช column input คาขอมลจะตอง:- อยในสาขาเดยวกนในทกบรรทดทนำาเขา- อยในรปแบบทเปนตวเลขหรอตวอกษรมาตรฐานหมายเหต:    คณไมสามารถใช informat ใน column input ได  

คณสมบตของการปอนขอมล column input มดงตอไปน:-ตวอกษรสามารถมblank ได- ความยาวตวอกษรอยในชวง จาก 1 ถง 32,767 ตวอกษร- ตวยด เชน (.), ไมจำาเปนสำาหรบขอมลทหายไป- คา input สามารถอานไดในลำาดบใด ๆ โดยไมคำานงถงตำาแหนงในการบนทก- คาหรอบางสวนของคาสามารถอานใหมไดอก- ทงสองชองวางดานหนาและทายภายในเขตจะถกละเวน- คาไมจำาเปนตองถกคนดวยชองวางหรอตวคนอน ๆ

Formatted Input การอานขอมลแบบมรปแบบ

การอานขอมลแบบมรปแบบเพอความยดหยนของการใช informats กบหลายคณสมบตของ column input โดยใชขอมลทจดรปแบบอานขอมลทไมเปนมาตรฐานทตองใชคำาแนะนำาเพมเตมใน SAS การปอนขอมลทจดรปแบบโดยปกตจะใชกบการควบคมตวชทชวยใหคณสามารถควบคมตำาแหนงของตวชในบฟเฟอรเมอคณอานขอมลคำาสง INPUT ในขนตอนตอไปนใช formatted input และ pointer controls ทราบวา $ 12 และ COMMA5 คอ informats และ +4 และ +6 คอ column pointer controls

data scores;

19

input name $12. +4 score1 comma5. +6 score2 comma5.; datalines;Riley 1,132 1,187Henderson 1,015 1,102;

หมายเหต:    สามารถใช informats ในการอานขอมลทไมสอดคลองในคอลมน จดสำาคญทเกยวกบ formatted input มดงน

- ตวอกษรสามารถมblank ได- ตวอกษรมคาจาก 1 ถง 32,767 ตวอกษร- เครองหมาย (.), ไมจำาเปนสำาหรบขอมลทหายไป- การใชตวชควบคมการวางตำาแหนงตวชคาการปอนขอมลสามารถอานไดใน

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

ไมเปนมาตรฐานเชนทศนยมหรอตวเลขบรรจดวยเครองหมายจลภาNamed Input การอานชอ

คณสามารถใช Named Input ใหอานเรคอรดทคาขอมลจะถกนำาหนาดวยชอของตวแปรและเครองหมายเทากบ (=) ในคำาสง INPUT

data games; input name=$ score1= score2=; datalines;name=riley score1=1132 score2=1187;

proc print data=games;run;

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

20

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

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

ตารางคณสมบตการอานขอมลเพมเตม

การปอนขอมลคณสมบต

เปาหมาย ใช

หลายเรคอรด สรางการสงเกตเดยว การควบคมตวช # N / หรอใน INPUT กบวน DO

เรคอรดเดยว สรางขอสงเกตหลายขอ

@ @ @ ในคำาสง INPUT

ทตอทายดวย @ ใน INPUT และ OUTPUT

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

อานขอมลทคนดวย ปอนรายการทมหรอไมมการปรบเปลยนรปแบบในคำาสง INPUT และ TRUNCOVER, DLM = DLMSTR = หรอ option DSD ใน INFILE

อานขอมลทไมคนดวย $VARYINGw. informat ในคำาสง INPUT  LENGTH= and TRUNCOVER options ใน INFILE

ไฟลทมการบนทกทมรปแบบทแตกตางกน

If-Then กบหลาย INPUT หรอ @ @ @ เทาทจำาเปน

ไฟลลำาดบชน If-Then กบหลาย INPUT ใช @ ตามความจำาเปน

แฟมใสมากกวาหนงหรอในการควบคมการ

ไหลของโปรแกรมท EOF

EOF = หรอ END =option ใน INFILE

หลาย INFILE และ INPUT

21

ตวเลอก FILEVAR = ใน INFILE FILENAME กบ concatenation,

สวนหนงของแตละระเบยน

linesize =option ใน INFILE

บางสวน แตไมไดบนทกทงหมดในแฟม

FIRSTOBS = และ OBS เลอก = ใน INFILE; FIRSTOBS = และ OBS = ตวเลอกระบบการควบคมตวช # n

สายขอมลสตรม ควบคมการอานดวยตวเลอกพเศษ

INFILE กบ DATALINES และ option ทเหมาะสม

เรมตนทคอลมนโดยเฉพาะ

@ ควบคมตวชคอลมน

ชองวางนำา รกษาไว $ CHAR w informat ในคำาสง INPUT

ตวคนอน ๆ นอกเหนอจากชองวาง (กบขอมลรายการหรอการปอนขอมลรายการแกไข

ดวยการปรบปรง colon)

DLM = หรอ DLMSTR = ตวเลอกตวเลอก DSD หรอทงสองอยางใน INFILE

อกขระแทบมาตรฐาน DLM = หรอ DLMSTR = ตวเลอกใน INFILE; หรอตวเลอก EXPANDTABS ใน INFILE

คาหายไป (กบขอมลรายการหรอการปอนขอมลรายการแกไข

ดวยการปรบปรง colon)

สรางขอสงเกตโดยไมสญเสยความสมบรณของขอมล; ปกปองความสมบรณของ

ขอมลโดยการเอาชนะการทำางานเรมตน

ตวเลอก TRUNCOVER ใน INFILE; DLM = หรอ DLMSTR = option DSD หรอทงสองอยาง

6. วธ ตรวจหาขอมลทไมถกตอง SAS

ลกษณะของขอมลทไมถกตองเมอมเหตการณตอไปน:-ตองม informat ทไมไดระบไว- ไมเปนไปตามทระบไวใน informat

22

- ไมตรงกบรปแบบการปอนขอมลทใชสำาหรบตวอยาง เชนหากมการอานขอมลทเปนตวเลขมาตรฐาน (เครองหมายดอลลารไซนหรอ informat) แตไมเปนไปตามกฎตวเลข SAS มาตรฐาน

- เปนคาทไมอยในชวง (ขนาดใหญเกนไปหรอเลกเกนไป)

ถา SAS อานคาขอมลทไมเขากนกบชนดทระบไวสำาหรบตวแปร SAS จะพยายามทจะแปลงคาใหชนดทกำาหนดตามทอธบายไวใน How SAS Handles Invalid Data . ถาแปลงไปไมไดหรอมขอผดพลาดเกดขนและ SAS จะดำาเนนการดงตอไปน:

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

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

อกขระ unprintable, มนถกพมพในรปแบบเลขฐานสบหก ขนาดจะมการพมพเหนอเสนสญญาณเพอชวยกำาหนดหมายเลขคอลมน

7. ขอมลทสญหายในการปอนขอมล (Representing Missing Values in Input Data)

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

คาทเปนตวเลข

ใชจดทศนยมเพยงตวเดยว(.). ใชเปนตวแทนของตวเลขทหายไปในการ Input

คาของสญลกษณ

ไมมตวแปร นอกจาก Input ตองการใหใสตวแปรลงไปจงใช (.) แทนสญลกษณ

23

คาทเปนตวเลขแบบพเศษ

ใชจดทศนยมตามดวยตวอกษรอยางใดอยางหนงหรอขดลาง (_).

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

dataperiod_a;missing X I;input Id $4. Foodpr1 Foodpr2 Foodpr3 Coffeem1 Coffeem2;datalines;1001 115 45 65 I 781002 86 27 55 72 861004 93 52 X 76 881015 73 35 43 112 1081027 101 127 39 76 79 ;proc print data=period_a;title 'Results of Test Period A'; footnote1 'X indicates TESTER ABSENT'; footnote2 'I indicates TEST WAS INCOMPLETE';run;The following output is produced: Output with Multiple Missing Values Results of Test Period AObs Id Foodpr1 Foodpr2 Foodpr3 Coffeem1 Coffeem2

1 1001 115 45 65 I 78 2 1002 86 27 55 72 86 3 1004 93 52 X 76 88 4 1015 73 35 43 112 108 5 1027 101 127 39 76 79

24

X indicates TESTER ABSENT I indicates TEST WAS INCOMPLETE

ลำาดบของคาทหายไป (Order of Missing Values)

คาทเปนตวเลข

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

Numeric Value Sort OrderSort Order Symbol Descriptionขนาดเลก ._ ขดลาง

. จดทศนยม

.A-.Z ตวเลยพเศษ A ขนาดเลก Z ขนาดใหญ

-n เครองหมายลบ0 ศนย

ขนาดใหญ +n เครองหมายบวก

คาทเปนสญลกษณ

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

25

การตงคาเปนตวแปรทหายไปอตโนมตโดย SAS (When Variable Values Are Automatically Set to Missing by SAS)

เมอเปนขอมลดบในตอนเรมตนของการทำาซำาของ DATA Step โปรแกรม SAS จะทำาการตงคาตวแปรใหเปนตวแปรทหายไปโดยอตโนมต แตมขอยกเวนดงตอไปน

- ตวแปรทมชอในคำาสง RETAIN

- ตวแปรทถกสรางขนดวยคำาสง SUM

- องคประกอบใน_TEMPORARY_ array

- ตวแปรทถกสรางขนดวย FILE หรอ INFILE

- ตวแปรทถกสรางขนดวยฟงกชน FGET

- องคประกอบของขอมลใน ARRAY

- ตวแปรอตโนมต

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

data new;input x;if x=1 then y=2;datalines; 4 1

26

3 1 ;

ขนตอนในการตงคาตวแปร

OBS X Y1 4 . 2 1 23 3 . 4 1 2เมอ X คอ 1 Y คอ 2 และ . คอคาทหายไป

คาทเปนตวเลขแบบพเศษ

คาทหายไปเปนตวเลขแบบพเศษซงแสดงออกเปนระยะเวลาทงคาตวแปรทเปนตวเลขแบบพเศษและตวเลขทวไป

ผลลพธของคาทหายไปจาก SAS

data a; x=.d; y=x+1;put y=;run;

1 data a;2 x= .d;3 y=x+1;4 put y=;5 run;

y=.

27

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

หมายเหต: ขอมล WORK1 ม 1 คาสงเกตและ 2 ตวแปร

หมายเหต: คำาสงขอมลทใช:

       เรยลไทม 0.58 วนาท       เวลา CPU 0.05 วนาท

การปองกนการมคาทหายไป(Preventing Propagation of Missing Values)

ถาคณไมตองการใหคาทขาดหายไปแสดงในผลลพธของการวเคราะหคณสามารถละเวนคาดงกลาวทหายไปไมใหปรากฏในวเคราะหได ดงตวอยางตอไปนdata test; x=.; y=5; a=x+y; b=sum(x,y); c=5; c+x;put a= b= c=;run;

ผลลพธจากการไมแสดงคาทหายไปในฟงกชนสถต

1 data test;2 x=.;3 y=5;4 a=x+y;5 b=sum(x,y);6 c=5;7 c+x;

28

8 put a= b= c=;9 run;a=. b=5 c=5

หมายเหต: คาทขาดหายไปถกสรางขนเปนผลมาจากการดำาเนนการ       การดำาเนนการเกยวกบคาทขาดหาย       แตละสถานทจะไดรบโดย:(จำานวนครง) ท (เสนทาง): (คอลมน)       1 ท 04:06หมายเหต: WORK.TEST ชดขอมลทม 1 สงเกตและ 5 ตวแปรหมายเหต: คำาสงขอมลทใช:        เรยลไทม 0.11 วนาท        เวลา CPU 0.03 วนาท

การทำางานกบตวแปรทหายไป (Working with Missing Values)วธการแสดงคาทหายไปของขอมลดบ

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

ตวแทนคาทหายไปชนดของคาทหายไป ตวแทน คำาอธบายตวเลย . จดทศนยมเดยวสญลกษณ ' ' วางเปลาพเศษ .ขอความ จดทศนยมตามดวย

ตวอกษรพเศษ ._ จดทศนยมตามดวย

ขดเสนใต

29

ทำาอยางไรในการกำาหนดตวแปรทหายไปใน Data Step

คณสามารถกำาหนดตวแปทหายไปของ DATA Step ในการใชโปรแกรมโดยใช

if age<0 then age=.;

8. Reading Binary Data : การอานขอมล Binarybinary data

เปนขอมลทเปนตวเลขทถกเกบไวในรปแบบเลขฐานสองมสญลกษณเพยงสองตวคอ 0 กบ 1

packed decimal data

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

zoned decimal data

เปน binary decimal numbers ทมการเขารหสเพอใหแตละหลกตองมหนงไบตในการจดเกบ byte สดทายมเครองหมายตวเลขทเปนตวเลขหลกสดทาย ขอมลทศนยม zoned ใชแทนการพมพ

Using Binary Informats

SAS สามารถอาน binary data ทมคำาสงพเศษทจดโดย SASinformats คณสามารถใชการจดรปแบบการปอนขอมลและระบ informat ในคำาสง INPUT informat ทคณเลอกจะถกกำาหนดโดยปจจยตอไปน:

30

-ประเภทของจำานวน การอาน : binary, packed decimal, zoned decimal หรอ การเปลยนแปลงของหนงในเหลาน

-ประเภทของระบบขอมลทถกสรางขน

-ประเภทของระบบทคณใชในการอานขอมล

แพลตฟอรมคอมพวเตอรทแตกตางกนมการเกบ binary decimal numbers ในรปแบบทแตกตางกน การสงของไบตแตกตางกน โดยแพลตฟอรมทเรยกวา "Big endian" หรอ "Littleendian." สำาหรบขอมลเพมเตมโปรดดทการเรยงลำาดบไบตสำาหรบ Integer Binary Data เกยวกบ Big Endian และ Little Endian แพลตฟอรม

SAS มจำานวน informats ในการอาน binary data และรปแบบทสอดคลองกนสำาหรบการเขยน binary data บางสวนของ informats เหลาน ในการอานขอมลใน Native Mode โดยใชระบบไบตในการสงท เปนมาตรฐานสำาหรบระบบทมการเรยกใช SAS informats อน ๆ บงคบใหขอมลทจะอานโดยมาตรฐาน IBM 370 โดยไมคำานงถง Native Mode ของระบบทมการเรยกใช SAS informats ทอานไดใน Native Mode หรอ IBM 370 Mode ดงในตารางตอไปน

Informats for Native or IBM 370 Mode Description ลกษณะ Native Mode

InformatsIBM 370 Mode Informats

ASCII Character $w. $ASCIIw.ASCII Numeric w.d $ASCIIw.EBCDIC Character $w. $EBCDICw.EBCDIC Numeric (Standard)

w.d S370FFw.d

Integer Binary IBw.d S370FIBw.dPositive Integer Binary

PIBw.d S370FPIBw.d

Real Binary RBw.d S370FRBw.d

31

Unsigned Integer Binary

PIBw.d S370FIBUw.d, S370FPIBw.d

Packed Decimal PDw.d S370FPDw.dUnsigned Packed Decimal

PKw.d S370FPDUw.d or PKw.d

Zoned Decimal ZDw.d S370FZDw.dZoned Decimal Leading Sign

S370FZDLw.d S370FZDLw.d

Zoned Decimal Separate Leading Sign

S370FZDSw.d S370FZDSw.d

Zoned Decimal Separate Trailing Sign

S370FZDTw.d S370FZDTw.d

Unsigned Zoned Decimal

ZDw.d S370FZDUw.d

ถาคณเขยนโปรแกรม SAS อาน binary data และทจะถกเรยกใชเมอเพยงหนงชนดของระบบคณสามารถใชnative mode informats และ formats แตถาคณตองการทจะเขยนโปรแกรม SAS ทสามารถทำางานบน multiple systems ทใชระบบไบตจดเกบแตกตางกนจะใช IBM 370 informats. IBM 370 informats ชวยใหคณสามารถเขยนโปรแกรม SAS ทสามารถอานขอมลในรปแบบนและทสามารถทำางานใน SAS โดยไมคำานงถงมาตรฐานสำาหรบการจดเกบขอมลทเปนตวเลข. IBM 370 informats ยงสามารถใชในการอาน ขอมลเดมทมรปแบบทสอดคลองกบ native mode formats ใน IBM mainframe.

9. Reading Column-Binary Datacolumn-binary data storage

เปนการจดเกบขอมลรปแบบเกาทไมไดใชอยางกวางขวางและไมจำาเปนตองใช สวนใหญใชโดยผใช SAS column-binary data storage ใชบบอดขอมลเพอให

32

ขอมลกวา 80 รายการสามารถเกบไวในการดเจาะเดยวไดขอดคอวธการนจะชวยใหคณสามารถเกบขอมลไดมากขน มขอเสยคอใชยาก

วธการอาน Column-Binary Data

การอาน column-binary data ดวย SAS , คณจำาเปนตองร:

วธการเลอก SAS column-binary informat ทเหมาะสม วธการตงคา RECFM= and LRECL= ทางเลอกใน INFILE วธการใช การควบคมตวบงช

ตารางรายการ และคำาอธบาย SAS column-binary informats.

SAS Informats สำาหรบการอาน Column-Binary Data

Informat Name

Description

$CBw. อานขอมลตวอกษรมาตรฐานจากไฟล column-binary

CBw. อานขอมลทเปนตวเลขมาตรฐานจากไฟล column-binary

PUNCH.d

อานไมวาแถวจะเปน punched

ROWw.d

อานเขต column-binary ลงคอลมนการด

To read column-binary data, you must set two options in the INFILE statement:

เพออาน column-binary data คณตองตงคาตวเลอกทงสองระบในคำาสง INFILE:

ตงคา RECFM= to F สำาหรบคาคงท. ตงคา LRECL= to 160,เพราะแตละการดคอลมนของ column-binary

data จะขยายไปยงไบตทสองกอนทเขตขอมลจะถกอาน

33

ตวอยางเชนในการอาน column-binary data จากแฟมทใช INFILE statement ดงรปแบบตอไปนกอนทจะสง INPUT :infile file-specification or path-name recfm=f lrecl=160;

คำา

อธ

บา

ย Colum

n-Binary D

ata Storage

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

ในสวนโซนของบตรเจาะซงเปนครงแรกทสามแถวสวนโซนของคสามารถมคา 12, 11, 0 (หรอ 10) หรอไมไดเจาะ ในสวนหลกของบตรซงเปนหนงในสผานแถวทสบสององคประกอบหลกของคสามารถมคา 1 ถง 9 หรอไมเจาะ

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

34

Columns and Rows in a Punched Card

SAS เกบคอลมนของขอมลไบนารคอลมนแตละในสองไบต ตงแตแตละคอลมนมเพยง 12 ตำาแหนงและตงแตไบตท 2 ม 16 ตำาแหนง 4 ตำาแหนงพเศษภายในไบตจะอยทจดเรมตนของแตละ byte รปตอไปนแสดงใหเหนถงความสอดคลองระหวางแถวของบตรเจาะและตำาแหนงภายใน 2 ไบตท SAS ใชในการเกบพวกเขา SAS เกบตำาแหนงทเจาะเปนเลขฐานสอง 1 บตและตำาแหนง unpunched เปนไบนารบต 0

35

Column-Binary Representation on a Punched Card