Sas เคลื่อนไหว เฉลี่ย ยูซีแอล


โค้ดตัวอย่างในแท็บรหัสแบบเต็มแสดงวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ครั้งล่าสุดในชุดข้อมูลหรือการสังเกตการณ์ N ครั้งล่าสุดภายในกลุ่ม BY ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ คำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ครั้งล่าสุดในชุดข้อมูลหรือการสังเกตการณ์ N ครั้งล่าสุดภายในกลุ่ม BY - ในบทความนี้ฉันจะแสดงเคล็ดลับการคำนวณค่าเฉลี่ยเคลื่อนที่ (สามารถ จะขยายไปยังการดำเนินการอื่น ๆ ที่ต้องใช้ฟังก์ชั่น windowing) ซึ่งเร็วเกินไป บ่อยครั้งที่นักวิเคราะห์ของ SAS จำเป็นต้องคำนวณค่าเฉลี่ยเคลื่อนที่และมีหลายทางเลือกตามลำดับความชอบ: 1. PROC EXPAND 2. ขั้นตอนของข้อมูล PROC SQL แต่หลายไซต์อาจไม่ได้รับอนุญาต SASETS ใช้ PROC EXPAND และทำค่าเฉลี่ยเคลื่อนที่ใน DATA ขั้นตอนต้องมีการเขียนโค้ดและมีข้อผิดพลาดเกิดขึ้น PROC SQL เป็นทางเลือกที่เป็นธรรมชาติสำหรับโปรแกรมเมอร์รุ่นจูเนียร์และในหลายกรณีทางธุรกิจจะเป็นทางออกเดียว แต่ SAS PROC SQL ของ SAS ไม่มีฟังก์ชันการทำ Windowing ที่มีอยู่ในหลาย Ds เพื่อช่วยในการคำนวณค่าเฉลี่ยเคลื่อนที่ คนเทคนิคหนึ่งมักใช้คือ CROSS JOIN ซึ่งมีราคาแพงมากและไม่ใช่โซลูชันที่ทำงานได้สำหรับชุดข้อมูลที่มีขนาดปานกลาง ในโพสต์นี้ฉันแสดงเคล็ดลับการคำนวณค่าเฉลี่ยเคลื่อนที่ (สามารถขยายไปยังการดำเนินการอื่น ๆ ที่ต้องใช้ฟังก์ชัน windowing) ซึ่งเร็วเกินไป พิจารณาการคำนวณค่าเฉลี่ยเคลื่อนที่ที่ง่ายที่สุดที่มีการสังเกตการณ์ K ต่อท้ายรวมอยู่ในการคำนวณ ได้แก่ MA (K) ที่นี่เรากำหนด K5 เราสร้างข้อมูลตัวอย่าง 20 ครั้งแรกโดยใช้รหัสตัวแปรเพื่อใช้กับหน้าต่างและจะใช้ตัวแปร X ในการคำนวณ MA และจากนั้นเราจะใช้ CROSS JOIN มาตรฐานเพื่อตรวจสอบข้อมูลที่ได้ก่อนไม่ได้จัดกลุ่มเพียง เพื่อทำความเข้าใจวิธีใช้โครงสร้างข้อมูล จากชุดข้อมูลที่เป็นผลลัพธ์มันเป็นการยากที่จะหาเงื่อนงำตอนนี้ให้เรียงตามคอลัมน์ quotbidquot ในชุดข้อมูลนี้: จากข้อมูลที่เรียงลำดับนี้เป็นที่แน่ชัดว่าเราไม่มีข้อมูล CROSS JOIN ทั้งชุดข้อมูลเดิม แต่ใช้ CROSS JOIN, เราสามารถสร้างชุดข้อมูล quotoperationquot ที่มีค่าความแตกต่างได้และให้ชุดข้อมูลต้นฉบับ CROSS JOIN กับชุดข้อมูล quotoperationquot ขนาดเล็กมากนี้และข้อมูลทั้งหมดที่เราต้องการใช้สำหรับการคำนวณ MA จะอยู่ที่นั่น ตอนนี้ให้ทำ: CROSS JOIN ข้อมูลเดิมที่มีข้อมูล quotoprequot จัดเรียงตาม (a. idops) ซึ่งเป็นจริงในชุดข้อมูล sortbid39 ในการจัดเรียงข้อมูลโปรดทราบว่าในโค้ดด้านบนมีความจำเป็นต้องมีขวานคูณด้วย b. weight เพื่อให้ข้อมูล สามารถเป็นแบบ inter-leaved ได้มิเช่นนั้นค่า X เดียวกันจากตารางต้นฉบับจะถูกส่งออกและการคำนวณ MA จะล้มเหลว ตัวแปรน้ำหนักอย่างชัดเจนจะเพิ่มความยืดหยุ่นในการคำนวณ MA ทั้งหมดได้มากขึ้น ในขณะที่การตั้งค่าให้เป็น 1 สำหรับผลการปฏิบัติงานทั้งหมดในผลการคำนวณ MA แบบธรรมดาการกำหนดน้ำหนักที่แตกต่างกันจะช่วยในการแก้ไขปัญหาการประมวลผลแบบ MA ที่ซับซ้อนมากขึ้นเช่นให้ข้อสังเกตเพิ่มเติมเกี่ยวกับน้ำหนักที่น้อยลงสำหรับ MA ที่ผุกร่อน ถ้าจำเป็นต้องมี K parameter ที่แตกต่างกันในการคำนวณ MA (K) จะต้องมีการปรับปรุงชุดข้อมูลการทำงานซึ่งเป็นงานที่ไม่สำคัญ ตอนนี้แม่แบบรหัสจริงสำหรับการคำนวณ MA (K) จะเป็น: ด้วยวิธีการใหม่นี้เป็นที่น่าสนใจเพื่อเปรียบเทียบกับ CROSS JOIN รวมทั้ง PROC EXPAND บนเวิร์กสเตชันของฉัน (Intel i5 3.8Ghz หน่วยความจำ 32GB และฮาร์ดดิสก์แบบ 1TB 72K) CROSS JOIN มีความยาวมากในการทำงาน (ถ้าข้อมูลมีขนาดใหญ่) ขณะที่วิธีการใหม่ใช้เวลาในการ PROC EXPAND เพียง 2 เท่าใช้เวลาทั้งสอง เล็กน้อยเมื่อเทียบกับตนเองเข้าร่วม การบริโภคเวลาที่แสดงด้านล่างอยู่ใน quotsecondquot ด้านล่างนี้ผู้อ่านโค้ดสามารถเรียกใช้และเปรียบเทียบตัวเองได้ โพสต์เมื่อ 10 พฤษภาคม 2015 โดย Liang Xie การเขียนโปรแกรม SAS สำหรับข้อมูล Miningsas การย้ายค่าเฉลี่ย sas gtgt ค่าเฉลี่ยเคลื่อนที่โดย davidlcassell raquo จันทร์, 15 มกราคม 2549 09:26:44 GMT คุณได้รับคำแนะนำที่ดีเยี่ยมแล้ว รับมัน. ฉันมีค่าความรำคาญที่จะมีส่วนร่วม (นอกเหนือจากการขอร้องให้คุณไม่ไปกับการเปลี่ยนตำแหน่งซึ่งจะยากมากที่จะทำงานด้วย) รายละเอียดของค่าเฉลี่ยเคลื่อนที่ที่คุณต้องทำอย่างไรเพื่อให้การสร้างค่าเฉลี่ยของข้อมูลทั้งหมดเป็นข้อมูลใหม่ที่เพิ่มเข้ามาคือ ไม่ใช่สิ่งที่เรามักคิดว่าเป็นค่าเฉลี่ยเคลื่อนที่ มีข้อ จำกัด เกี่ยวกับจำนวนของค่าก่อนหน้าที่จะรวมค่าเฉลี่ยคุณจะทำอย่างไรถ้าคุณมีค่าที่อยู่ตรงกลางของข้อมูลคุณจะทำอย่างไรหากมีข้อผิดพลาดที่ชัดเจนเกิดขึ้นในช่วงกลางของค่าเฉลี่ย เฉลี่ยควรจะทำหลังจากนั้นสำหรับ transpose ของคุณหากคุณต้องการเพียงเพื่อการแสดงผลแล้วลองทำด้วย PROC REPORT หรือ PROC TABULATE แทน ถ้าคุณต้องการข้อมูลนี้สำหรับชุดข้อมูลภายนอกให้ใช้ procs ด้านบน (หรือ PROC TRANSPOSE) และส่งผลลัพธ์ไปยังตารางข้อมูล SAS เพื่อการส่งออก โดยทั่วไปการเปลี่ยนข้อมูลตามข้างในขณะที่คุณแสดงทำให้การวิเคราะห์และการสรุปในอนาคตทำได้ยากขึ้น นอกจากนี้ยังทำให้การจัดการฐานข้อมูลแย่ลง อย่างไรก็ตามผู้บริหารบางคนของ Excel มุ่งหวังให้กระต่ายมีความสุข ถ้าคุณต้องคำนวณค่าเฉลี่ยเมื่อมีข้อมูลใหม่ให้ใช้งานได้เพียงติดตามผลรวมและจำนวนที่คุณไป จากนั้นค่าเฉลี่ยจนถึงปัจจุบันเป็นเรื่องง่าย ถ้าคุณมีหน้าต่างที่จะจัดการกับค่าเฉลี่ยฉันจะไปกับ PROC EXPAND ตามที่ Andrew แนะนำ จะช่วยให้คุณสามารถกวาดรายละเอียดและเงื่อนไขขอบเขตภายใต้พรมได้มาก HTH, David แสดงด้วยตัวคุณเองทันทีด้วย MSN Messenger ดาวน์โหลดได้ในวันนี้ - ฟรี messenger. msn. click-urlgoonm00200471avedirect01 sas gtgt ค่าเฉลี่ยเคลื่อนที่โดย ben. powell raquo อังคาร, 17 ม. ค. 2006 17:33:00 GMT นี่แสดงข้อผิดพลาด (อื่น ๆ ) ใน Excel หรือคุณควรรวม: ถ้า N gt 2 ทำแล้วค่าเฉลี่ยเคลื่อนที่บนแผนภูมิ Excel ที่มีระยะเวลา 3 จะไม่มีค่าสำหรับจุดสองจุดแรกในขณะที่คุณใช้ฟังก์ชัน mean กับ SAS ในการจัดการค่าที่ขาดหายไปจะทำให้ได้ค่า สำหรับสองจุดแรก ที่ถูกต้อง: Howard (และ SAS) หรือ Excel On Sat, 14 ม. ค. 2006 19:13:00 -0500, Howard Schreier lths ที่ dc-sug DOT orggt sas gtgt ค่าเฉลี่ยเคลื่อนที่โดย davidlcassell raquo พุธ, 18 มกราคม 2006 02:48: 00 GMT ขึ้นอยู่กับกรณีธุรกิจของคุณ ในชุดข้อมูลเวลาเรามักจะต้องให้การตัดสินใจเกี่ยวกับการย้ายค่าเฉลี่ยและสถิติเชิงพรรณนาแบบมีสายโดยอิงตามข้อกำหนดของปัญหาและสิ่งต่างๆเช่นความยาวของหน้าต่าง ฉันจะคาดหวังว่าจะกำหนดค่าที่ขาดหายไปให้กับจุดสองจุดแรกที่นี่ แต่โปสเตอร์เดิมขอถามเฉพาะผลที่ Howard สร้างขึ้น ดังนั้นฉันต้องบอกว่ารหัส Howards ถูกต้องในสถานการณ์นี้ ไม่ว่าจะเป็นโปสเตอร์ต้นฉบับที่นำเสนอปัญหาอย่างชัดเจนก็เป็นอีกเรื่องหนึ่ง David ฟรีป๊อปอัพบล็อกที่มีแถบเครื่องมือ MSN ใหม่ได้ในขณะนี้ toolbar. msn. click-urlgoonm00200415avedirect01 sas gtgt ค่าเฉลี่ยเคลื่อนที่โดย jdiebal raquo Sat, 21 Jan 2006 02:28:19 GMT ขอบคุณทุกคนที่ตอบ ฉันเพิ่งสังเกตเห็นว่าฉันไม่ได้ตอบกลับ bac k เมื่อสัปดาห์ที่แล้ว ขอโทษ นี่คือสิ่งที่ฉันสิ้นสุดกับ: ข้อมูล MovingAvg ยังคง s 0 ชุด main4 s3D s วัน avgSpan3Dsn run ซึ่งผลลัพธ์ในสิ่งที่ต้องการ: 200511 3.3 3.3 200512 10.1 6.7 200601 22.1 11.8 ฉันไม่ได้สิ้นสุดต้อง transpose แต่ที่จะสวยมาตรฐาน ขอบคุณอีกครั้ง. สวัสดีทุกคน - มีใครรู้วิธีง่ายๆในการคำนวณค่าเฉลี่ยเคลื่อนที่ใน SAS ดูเหมือนกับฉันว่านี่เป็นสิ่งปกติและฉันลาดเทเพียงหา. proc ขวา ฉันมีข้อมูลประจำวันเป็นเวลาหลายปีและต้องการคำนวณค่าเฉลี่ยรายวันของจุดข้อมูลมากกว่า - 30 วัน ความคิดเดียวที่ฉันมีเพื่อให้ห่างไกลคือการใช้ขั้นตอนข้อมูลเพื่อเซตข้อมูลแล้วใช้ PROC MEANS และย้ำ แต่ดูเหมือน cloodgy จริงๆ sas gtgt ค่าเฉลี่ยเคลื่อนที่โดย hs AT dc-sug DOT org raquo ส., 17 ม. ค. 2009 02:39:44 GMT วันพุธที่ 16 มกราคม 2009 เวลา 13:09:11 -0500, Blocher, Jesse lt XXXXXXXXX ให้ฉันทราบว่านี่เป็น สิ่งที่พบบ่อยและฉันลาดเทหา proc ขวา ค่าของจุดข้อมูลมากกว่า - 30 วัน ใช้ PROC MEANS และทำซ้ำ แต่ดูเหมือนว่าจะเป็นเหตุที่ร้ายแรงจริงๆ 1. PROC ขยาย (SASETS) sas gtgt moving average โดย dorjetarap raquo Sat, 17 Jan 2009 02:44:35 GMT หากคุณมี ETS คุณสามารถใช้ proc ขยายได้ เพื่อตรวจสอบว่าคุณได้เรียกใช้งานต่อไปนี้หรือไม่และตรวจสอบบันทึก: proc setinit run เอกสารนี้ให้ตัวอย่างการใช้งานนี้: 2009116 Blocher, Jesse lt XXXXXXXXX gt: sas gtgt moving average โดย sashole raquo วันเสาร์ที่ 17 มกราคม 2009 เวลา 05: 04:05 GMT คุณอาจลองใช้วิธีการแบบ 1 ขั้นตอน (ขั้นตอนแรกคือไฟล์ตัวอย่างและให้ n3 แทน 30 ในกรณีของคุณ): data a date วันที่ 1 ถึง 20 item 1 output end run ให้ n 3 let w eval (1 2 n) ข้อมูล avg (drop :) ตั้งค่า (เปลี่ยนชื่อ (วันที่รายการไอเท็ม)) sum - sum (lagw (item), 0) รายการ sum avg sum w date lagn (date) item lagn (item) if n gtw run แนวคิดด้านบนคือการคำนวณยอดรวมสำหรับการสังเกตแต่ละครั้งโดยการลบจากรายการที่อยู่ข้างหลัง 2N1 ที่อยู่เบื้องหลังก่อนที่จะเพิ่มรายการปัจจุบัน (ดังนั้นจึงไม่จำเป็นต้องให้ข้อสรุป (N1) รายการสำหรับการสังเกตแต่ละครั้ง) จากนั้น เพื่อคำนวณค่าเฉลี่ยและกำหนดให้ค่าจากการสังเกตที่ n หลังปัจจุบัน ฉันไม่ทราบวิธีที่คุณต้องการจัดการกับวันที่ใกล้ชิดกว่าที่ N ตั้งแต่ต้นและปลายดังนั้นเหนือพวกเขาจะถูกตัดเพียงอย่างเดียวและมีเพียงวันที่เต็มล้อมรอบด้วยรายการ - N จะนำเสนอ เมื่อศุกร์ 16 มกราคม 2009 เวลา 13:09:11 -0500, Blocher, Jesse lt XXXXXXXXX gt ให้ฉันทราบว่านี่เป็นเรื่องธรรมดาและฉันไม่สามารถหาทางขวาได้ ค่าของจุดข้อมูลมากกว่า - 30 วัน ใช้ PROC MEANS และย้ำ แต่ดูเหมือนว่าจะเป็นเหตุที่ต้องเกิดขึ้นจริงๆ 13 ยุบระหว่างการสังเกตการณ์ใน SAS SAS โมดูลการเรียนรู้ที่นี่เราจะอธิบายวิธียุบข้อมูลในการสังเกตโดยใช้วิธีการ proc ตัวอย่างของเราใช้ชุดข้อมูลเชิงสมมุติที่มีข้อมูลเกี่ยวกับเด็ก ๆ ในสามครอบครัว ตัวอย่างเหล่านี้แสดงให้เห็นว่าคุณสามารถยุบลงระหว่างเด็ก ๆ เพื่อสร้างระเบียนครอบครัวจากประวัติเด็กได้อย่างไร 1. อ่านไฟล์ข้อมูลนี่คือโปรแกรม SAS ที่สร้างไฟล์ข้อมูลชื่อว่าเด็ก ๆ มันประกอบด้วยสามครอบครัว (famid) แต่ละคนมีเด็กสามคน ประกอบด้วยรหัสครอบครัวชื่อเด็กลำดับการคลอด (1 2 3 สำหรับ 1, 2, 3) และอายุน้ำหนักและเพศของเด็กแต่ละคน นี่คือผลลัพธ์ของการพิมพ์ proc 2. การใช้ proc หมายถึงการยุบข้อมูลข้ามระเบียนเราสามารถใช้ proc หมายถึงการยุบทั่วทั้งครอบครัว ตัวอย่างด้านล่างคำนวณอายุเฉลี่ยของเด็กแต่ละคนในแต่ละครอบครัว (เนื่องจากคำสั่ง famid) จากนั้นจึงส่งผลลัพธ์ไปยังไฟล์ข้อมูล SAS ที่ชื่อ fam2 เอาท์พุทของวิธีการ proc จะแสดงด้านล่าง และเราใช้ proc print เพื่อดู fam2 และผลลัพธ์นี้แสดงให้เห็นว่า fam2 ไฟล์ข้อมูลมีค่าเฉลี่ยของอายุสำหรับเด็กสำหรับแต่ละครอบครัว อย่างไรก็ตามมีบันทึกพิเศษ (รายการที่แสดงไว้ด้านล่าง) นี่เป็นค่าเฉลี่ยโดยรวม (สังเกตได้ว่า FREQ มีค่าเท่ากับ 9 และมีเด็กทั้งหมด 9 คน) จริงๆเรา don8217t ต้องการบันทึกนี้ เราสามารถระงับการสร้างเร็กคอร์ดโดยมีค่าเฉลี่ยโดยรวมกับออปชัน nway ในคำสั่ง proc means โดยทั่วไปเมื่อคุณใช้ proc หมายถึงคำสั่ง class และสร้างไฟล์ข้อมูลผลลัพธ์คุณจะต้องการใช้ตัวเลือก nway ดังแสดงด้านล่าง เราละเว้น proc หมายถึงเอาท์พุทตอนนี้แฟ้มข้อมูล fam3 มีเพียงสามระเบียนที่มีอายุเฉลี่ยสำหรับแต่ละครอบครัว ต่อไปนี้หมายถึงตัวอย่างเช่นเดียวกันกับตัวอย่างก่อนหน้ายกเว้นว่าค่าเฉลี่ยของอายุถูกกำหนดไว้อย่างชัดแจ้งเรียกว่าสัมภาระ เอาท์พุทเป็นเช่นเดียวกับก่อนยกเว้นว่าค่าเฉลี่ยของอายุที่เรียกว่าสัมภาระ ตัวอย่างส่วนที่เหลือจะระบุชื่อตัวแปรที่ยุบไว้อย่างชัดเจน (เช่นใช้ meanhandgage แทนที่จะหมายถึง) โดยทั่วไปควรตั้งชื่อตัวแปรเพื่อหลีกเลี่ยงความสับสนระหว่างตัวแปรเดิมกับตัวแปรยุบ เราสามารถขอค่าเฉลี่ยสำหรับตัวแปรได้มากกว่าหนึ่งตัวแปร ที่นี่เราได้รับค่าเฉลี่ยสำหรับอายุและน้ำหนักทั้งหมดในคำสั่งเดียวกัน ดังที่คุณเห็นในผลลัพธ์ด้านล่างเวลาในการเดินทางคืออายุเฉลี่ยและเฉลี่ยเป็นน้ำหนักเฉลี่ยของเด็กในแต่ละครอบครัว 5. การขอสถิติหลายรายการพร้อมกันเราสามารถขอสถิติหลายรายการพร้อมกันได้ คำสั่งด้านล่างมีค่าเฉลี่ยค่าเบี่ยงเบนมาตรฐานและอายุ (mean std และ N) สำหรับอายุและน้ำหนักภายในแต่ละครอบครัว ผลลัพธ์ด้านล่างแสดงผลลัพธ์ของ proc means ผลลัพธ์ด้านล่างสอดคล้องกับวิธีการทางด้านลวง คุณสามารถดูอายุโดยเฉลี่ยและน้ำหนักโดยครอบครัวอยู่ในการรับส่งและการบิน ในทำนองเดียวกัน stdage และ stdwt มีค่าเบี่ยงเบนมาตรฐานของอายุและน้ำหนักสำหรับแต่ละครอบครัวและ nage และ nwt มีจำนวนข้อสังเกตที่ถูกต้องสำหรับอายุและน้ำหนักสำหรับแต่ละครอบครัว 6. Suppressing proc หมายถึงเอาต์พุตในตัวอย่างของเราเรามีครอบครัวเพียงสามครอบครัว สำหรับข้อมูลของคุณคุณอาจมีหลายสิบหลายร้อยหรือหลายพันครอบครัว (หรือกลุ่มใดก็ตามที่คุณใช้อยู่) เอาต์พุตของโพรไฟล์ proc จะยาวมากดังนั้นคุณอาจต้องการระงับเอาต์พุต คุณสามารถทำสิ่งนี้ได้โดยใช้ตัวเลือกพิมพ์ภาพตามที่แสดงด้านล่าง ผลลัพธ์จากวิธี proc ไม่ได้พิมพ์เนื่องจากตัวเลือก noprint 7. การนับจำนวนชายและหญิงในครอบครัวสมมติว่าคุณต้องการนับจำนวนเด็กชายและเด็กหญิงในครอบครัว เราสามารถทำเช่นนั้นได้ด้วยขั้นตอนพิเศษหนึ่งขั้น เราจะสร้างตัวแปรดัมเบิ้ลที่เป็น 1 ถ้าเป็นเด็ก (0 ถ้าไม่ใช่) และตัวแปรดัมเบิ้ลที่เป็น 1 ถ้าเป็นเด็กหญิง (และ 0 ถ้าไม่ใช่) ผลรวมของตัวแปรหุ่นเด็กในครอบครัวคือจำนวนของเด็กชายในครอบครัวและผลรวมของตัวแปรตัวเมียตัวเมียภายในครอบครัวคือจำนวนสาวในครอบครัว ขั้นแรกเราจะใช้ขั้นตอนข้อมูลเพื่อทำให้ตัวแปรตัวอยกับเด็กหญิงและเด็กหญิง เราใช้ proc print เพื่อดูตัวแปรเด็กและหญิงเพื่อตรวจสอบอีกครั้ง เราใช้ proc หมายถึงการสรุปตัวแปรเด็กชายและเด็กหญิงตัวปลอมสำหรับแต่ละครอบครัวและสร้างไฟล์ข้อมูลชื่อ fam8 ซึ่งประกอบด้วยผลรวมของเด็กผู้ชายในเด็กชายและผลรวมของเด็กผู้หญิงในเด็กหญิง เราใช้ตัวเลือก noprint เพื่อปราบปรามผลลัพธ์ของ proc means เราพิมพ์ proc เพื่อดูไฟล์ข้อมูลที่ส่งออก ตามที่เราคาดหวังพิมพ์ proc แสดงให้เห็นว่าชายมีนับเด็กชายในแต่ละครอบครัวและเด็กหญิงมีจำนวนสาวในแต่ละครอบครัว 8. ผสานข้อมูลที่ยุบกลับไปกับข้อมูลเดิมบางครั้งคุณต้องการรวมข้อมูลที่ยุบกลับกับข้อมูลเดิม Let8217s ใช้ตัวอย่างสร้างสัมภาระและ avgwt สำหรับแต่ละครอบครัวแล้วรวมผลลัพธ์เหล่านั้นไว้กับข้อมูลเด็กเดิม ประการแรก let8217s จะยุบข้อมูลระหว่างครอบครัวเพื่อให้การขนส่งและการบินพ้นเช่นเดียวกับที่เราเคยทำมาก่อน ประการที่สองเราจัดเรียงเด็กและเรียงลำดับ fam9 ทั้งในครอบครัวที่น่าสงสาร เตรียมตัวสำหรับการรวมเข้าด้วยกัน ประการที่สามเรารวมไฟล์ที่เรียงตามลำดับ (skids และ sfam9) โดย famid เราสามารถปล่อยชนิดและความถี่เนื่องจากไม่จำเป็น แต่เรา don8217t ต้องวางพวกเขา เราสามารถพิมพ์ผลลัพธ์ที่แสดงให้เห็นว่าตัวแปร avgage และ avgwt ถูกผสานกลับกับเด็กเดิมดังนั้นเด็กแต่ละคนมีอายุและน้ำหนักเฉลี่ยที่เกี่ยวข้องกับครอบครัวของพวกเขา 9. ปัญหาในการมองหาคุณอาจจบลงด้วยบันทึกที่คุณไม่ได้คาดหวังหากคุณลืมใช้ตัวเลือก nway ถ้าคุณยุบข้ามเรกคอร์ดแล้วย้อนกลับไปดูข้อมูลเดิมให้แน่ใจว่าคุณได้ตั้งชื่อตัวแปรไว้อย่างชัดเจนเมื่อคุณยุบตัว ถ้าคุณ don8217t ตัวแปรจากข้อมูลที่ยุบจะมีชื่อเหมือนกับข้อมูลเดิมและจะปะทะกันเมื่อคุณสร้างข้อมูลใหม่ 10. ข้อมูลเพิ่มเติมสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรวมไฟล์ข้อมูลดู SAS Learning Module เกี่ยวกับการรวมไฟล์ข้อมูลใน SAS

Comments