0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SAS:?數(shù)據(jù)集的橫向合并(一)

冬至子 ? 來(lái)源:小高的SAS學(xué)習(xí)筆記 ? 作者:小高筆記 ? 2023-05-19 10:44 ? 次閱讀

一、一對(duì)一合并數(shù)據(jù)集

1.具有不同變量的數(shù)據(jù)集

在橫向合并中,當(dāng)兩個(gè)或更多的SAS數(shù)據(jù)集沒(méi)有相同的變量時(shí),此時(shí)合并數(shù)據(jù)集的變量均會(huì)展示在數(shù)據(jù)集中。

data one;

input week $10.;

cards;

Week1

Week2

Week3

Week4

Week5

;

run;

/ 結(jié)果如下: /

圖片

data two;

input topic $10.;

cards;

Topic 1

Topic 2

Topic 3

Topic 4

Topic 5

;

run;

/ 結(jié)果如下: /

圖片

data all1;

merge one two;

run;

/ 結(jié)果如下: /

圖片

2.具有相同變量的數(shù)據(jù)集(不使用by語(yǔ)句)

當(dāng)兩個(gè)或更多的SAS數(shù)據(jù)集有相同的變量時(shí),第 2 個(gè)數(shù)據(jù)集中的變量將覆蓋第 1 個(gè)數(shù)據(jù)集中的相同變量。如果不想要被覆蓋,則可以使用RENAME數(shù)據(jù)步驟選項(xiàng)來(lái)重新命名。

data three;

input ID $3. balance 4.;

cards;

001 102

005 89

002 231

004 147

003 192

;

run;

/ 結(jié)果如下: /

圖片

data four;

input Name $ 1-15 @17 balance 4.;

cards;

John Smith 96

Ted Husion 80

Martha Chen 150

Sandy Lee 100

Paul Leny 192

Avery 200

;

run;

/ 結(jié)果如下: /

圖片

data all2;

merge three four;

run;

/ 結(jié)果如下: /

圖片

**3.具有相同變量的數(shù)據(jù)集(使用by語(yǔ)句) **

與by語(yǔ)句的合并允許根據(jù)by變量的值來(lái)匹配觀測(cè)值。在合并之前,所有的輸入數(shù)據(jù)集必須按照BY或KEY變量進(jìn)行排序。

data five;

input ID $3. balance 4. zip 6.;

cards;

001 102 16431

005 89 46298

002 231 98704

004 147 42316

003 192 44765

007 479 21496

;

run;

proc sort data=five;

by id;

run;

/ 結(jié)果如下: /

圖片

data six;

input Name $ 1-15 @17 balance 4. @23 ID $3.;

cards;

Sandy Lee 100 004

Paul Leny 192 003

John Smith 96 001

Ted Husion 80 005

Martha Chen 150 002

Jason Tod 244 006

;

run;

proc sort data=six;

by id;

run;

/ 結(jié)果如下: /

圖片

data all3;

merge five six;

by id;

run;

/ 結(jié)果如下: /

圖片

4.具有相同變量的數(shù)據(jù)集(使用by語(yǔ)句和in選項(xiàng))

在上面的例子中,觀察值6和7來(lái)自?xún)蓚€(gè)數(shù)據(jù)集中的一個(gè)。IN=選項(xiàng)創(chuàng)建了一個(gè)變量,可以識(shí)別數(shù)據(jù)集是否對(duì)輸出有貢獻(xiàn)。舉以下三個(gè)例子來(lái)讓大家理解:

例1:在上面的例子中,我們添加了另一個(gè)變量 "source",并使用IN=選項(xiàng)來(lái)識(shí)別每個(gè)輸入數(shù)據(jù)集的貢獻(xiàn):

data all4;

length source $8;

merge five(in=in1) six(in=in2);

by id;

if in1 and in2 then source='Both';

else if in1 then source='Left';

else source='Right';

run;

/ 結(jié)果如下: /

圖片

例2:在上面的例子中,如果我們希望輸出的數(shù)據(jù)集只包含來(lái)自?xún)蓚€(gè)輸入數(shù)據(jù)集的觀察值:

data all5;

merge five(in=in1) six(in=in2);

by id;

if in1 and in2 ;

run;

/ 結(jié)果如下: /

圖片

例3:我們希望輸出的數(shù)據(jù)集包含所有來(lái)自five輸入數(shù)據(jù)集的觀測(cè)值:

data all6;

merge five(in=in1) six(in=in2);

by id;

if in1 ;

run;

/ 結(jié)果如下: /

圖片

注意:如果匹配合并的目的是一對(duì)一的匹配合并,輸入的數(shù)據(jù)集應(yīng)該沒(méi)有重復(fù)的鍵。因此,在合并之前,可能需要在合并前對(duì)proc sort使用NODUPKEY選項(xiàng)。

二、一對(duì)多或多對(duì)一合并數(shù)據(jù)集

BY變量值在某一輸入數(shù)據(jù)集中存在重復(fù)值,即在其中一個(gè)輸入數(shù)據(jù)集中,含有兩條或兩條以上的觀測(cè)具有相同的BY變量值,也稱(chēng)為一對(duì)多合并。

在匹配過(guò)程中會(huì)遵循如下原則:由輸入數(shù)據(jù)集讀入的變量值,會(huì)保留在PDV中,直到被下一個(gè)讀入的觀測(cè)值覆蓋或該BY組合處理完畢被重置為缺失值為止。為了更好的理解,通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)具體講解這一原則。

data seven;

input ID $3. zip 6.;

cards;

001 16431

005 46298

002 98704

004 42316

003 44765

007 21496

;

run;

proc sort data=seven out=seven;

by id;

run;

/ 結(jié)果如下: /

圖片

data eight;

input Name $ 1-15 @17 balance 4. @23 ID $3.;

cards;

Sandy Lee 100 004

Paul Leny 192 003

John Smith 96 001

Ted Husion 80 005

Martha Chen 150 002

Jason Tod 244 006

Avery 200 001

;

run;

proc sort data=eight out=eight;

by id;

run;

/ 結(jié)果如下: /

圖片

data all7;

merge seven eight;

by id;

run;

/ 結(jié)果如下: /

圖片

三、多對(duì)多合并數(shù)據(jù)集

雖然在匹配合并時(shí),一般情況下BY變量值至多在某一個(gè)數(shù)據(jù)集中有重復(fù),但并不代表匹配合并只能處理這一種情況,它同樣可以處理兩個(gè)或兩個(gè)以上輸入數(shù)據(jù)集中的BY變量值重復(fù)的情況,也就是實(shí)現(xiàn)多對(duì)多合并。

SAS的匹配原則和一對(duì)多合并時(shí)一樣,并且新數(shù)據(jù)集中每一個(gè)BY變量值重復(fù)的次數(shù)和輸入數(shù)據(jù)集中重復(fù)次數(shù)最多的一樣。

data nine;

input id$3. number;

cards;

001 2

001 3

002 2

002 4

;

run;

proc sort data=nine out=nine;

by id;

run;

/ 結(jié)果如下: /

圖片

data ten;

input id$3. balance;

cards;

001 100

001 192

002 150

002 200

003 136

;

run;

proc sort data=ten out=ten;

by id;

run;

/ 結(jié)果如下: /

圖片

data all8;

merge nine ten;

by id;

run;

/ 結(jié)果如下: /

圖片

在上例中,all8數(shù)據(jù)集中有一部分id號(hào)的number信息,如果不想將這些id的信息包含在新生成的數(shù)據(jù)集中,就需要確定數(shù)據(jù)集使用數(shù)據(jù)集選項(xiàng)IN=可以幫助實(shí)現(xiàn)這一功能。

data all9;

merge nine(in=in1) ten(in=in2);

by id;

if in1;

run;

/ 結(jié)果如下: /

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SAS
    SAS
    +關(guān)注

    關(guān)注

    2

    文章

    521

    瀏覽量

    32821
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1200

    瀏覽量

    24621
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SAS走進(jìn)企業(yè)級(jí)存儲(chǔ)應(yīng)用

    。 從并行到串行SCSI的轉(zhuǎn)變?yōu)橛脩?hù)提供了種更 新的路線圖,根據(jù)SCSI商業(yè)協(xié)會(huì)(STA)的計(jì)劃,將及時(shí)地從目前的3Gb/s發(fā)展到12Gb/s。SAS技術(shù)規(guī)范也準(zhǔn)許在同應(yīng)用中同時(shí)使用串行 ATA
    發(fā)表于 11-13 21:58

    串行連接SCSI(SAS)技術(shù)開(kāi)辟寬數(shù)據(jù)路徑

    SAS寬端口的胖數(shù)據(jù)管道。新出現(xiàn)的RAID控制器和存儲(chǔ)子系統(tǒng)利用了SAS寬端口的帶寬和低成本的優(yōu)勢(shì)。SAS通過(guò)在混合SAS和SATA硬盤(pán)的
    發(fā)表于 11-13 21:59

    SAS分區(qū)規(guī)范為所有SAS物理結(jié)構(gòu)提供靈活高效的接入控制,其特性包括

    顯著減少開(kāi)發(fā)費(fèi)用和加快產(chǎn)品上市時(shí)間。SMS個(gè)主要特性是可以在整個(gè)SAS結(jié)構(gòu)接入控制區(qū)進(jìn)行完整配置和管理,此外,SMS通過(guò)圖形用戶(hù)界面以分級(jí)形式顯示SAS結(jié)構(gòu),便于將正確的分區(qū)特性分配給擴(kuò)展器和終端設(shè)備。
    發(fā)表于 06-02 09:31

    SAS固態(tài)硬盤(pán)存儲(chǔ)技術(shù)

    、沖擊、腐蝕、高溫、低溫、鹽霧、潮濕等惡劣的作業(yè)環(huán)境。 速度:ASpec元存工業(yè)級(jí)SAS固態(tài)硬盤(pán)是個(gè)完全的雙向系統(tǒng),而SATA則繼承了IDE的特性,是半雙向通信的系統(tǒng)。因此SAS數(shù)據(jù)
    發(fā)表于 06-18 05:00

    SAS硬盤(pán)有什么特點(diǎn)?

    SCSI協(xié)議由于其深受信賴(lài)的可靠性和穩(wěn)定的功能,20年來(lái)直牢牢占據(jù)市場(chǎng)。3年前才推出的串行連接SCSI(SAS)延續(xù)了對(duì)SCSI的創(chuàng)新,具有全新水平的可擴(kuò)展性、靈活性和經(jīng)濟(jì)有效性,為用戶(hù)提供接入、
    發(fā)表于 09-24 09:01

    SAS接口的設(shè)計(jì)

     SAS是新代的SCSI技術(shù),和現(xiàn)在流行的Serial ATA(SATA)硬盤(pán)相同,都是采用串行技術(shù)以獲得更高的傳輸速度,并通過(guò)縮短連結(jié)線改善內(nèi)部空間等。SAS是并行SCSI接口之后開(kāi)發(fā)出的全新
    發(fā)表于 09-09 06:26

    數(shù)據(jù)文件合并

    次練手寫(xiě)的小工具,可以批量將大量測(cè)試數(shù)據(jù)文件合并個(gè)文檔,以便后續(xù)處理,奉上源碼,各位可自由發(fā)揮。
    發(fā)表于 03-04 16:52

    結(jié)構(gòu)粒化的數(shù)據(jù)合并

    為了研究實(shí)際中的數(shù)據(jù)合并問(wèn)題,對(duì)各類(lèi)數(shù)據(jù)信息給予了整體表示,使數(shù)據(jù)、關(guān)聯(lián)關(guān)系和劃分共同組成了關(guān)聯(lián)組合結(jié)構(gòu),為
    發(fā)表于 01-17 10:50 ?0次下載

    種大數(shù)據(jù)的密度統(tǒng)計(jì)合并算法

    data sets,簡(jiǎn)稱(chēng)DSML).該算法將數(shù)據(jù)點(diǎn)的每個(gè)特征看作組獨(dú)立隨機(jī)變量,并根據(jù)獨(dú)立有限差分不等式獲得統(tǒng)計(jì)合并判定準(zhǔn)則.首先,使用統(tǒng)計(jì)合并判定準(zhǔn)則對(duì)Leaders算法做出改進(jìn)
    發(fā)表于 01-21 11:45 ?1次下載

    5個(gè)必須知道的Pandas數(shù)據(jù)合并技巧

    concat是pandas中專(zhuān)門(mén)用于數(shù)據(jù)連接合并的函數(shù),功能非常強(qiáng)大,支持縱向合并橫向合并,默認(rèn)情況下是縱向
    的頭像 發(fā)表于 04-13 10:35 ?2273次閱讀

    SAS:數(shù)據(jù)橫向合并(二)

    前面我們介紹了在data step中用merge的方法可以對(duì)數(shù)據(jù)橫向合并,這節(jié)我們來(lái)講講在procedure過(guò)程步中用proc sql的方法對(duì)數(shù)據(jù)
    的頭像 發(fā)表于 05-19 10:47 ?4595次閱讀
    <b class='flag-5'>SAS</b>:<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>集</b>的<b class='flag-5'>橫向</b><b class='flag-5'>合并</b>(二)

    ?SAS數(shù)據(jù)的input輸入方式

    SAS input輸入方法用于讀取原始數(shù)據(jù)。原始數(shù)據(jù)可以來(lái)自外部源或來(lái)自流數(shù)據(jù)。
    的頭像 發(fā)表于 05-19 14:50 ?2737次閱讀
    ?<b class='flag-5'>SAS</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>集</b>的input輸入方式

    SAS-3成式磁盤(pán)陣列解決方案用戶(hù)指南

    電子發(fā)燒友網(wǎng)站提供《SAS-3成式磁盤(pán)陣列解決方案用戶(hù)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-04 10:20 ?0次下載
    <b class='flag-5'>SAS</b>-3<b class='flag-5'>集</b>成式磁盤(pán)陣列解決方案用戶(hù)指南

    SAS-2成RAID配置實(shí)用程序用戶(hù)指南

    電子發(fā)燒友網(wǎng)站提供《SAS-2成RAID配置實(shí)用程序用戶(hù)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-10 16:25 ?0次下載
    <b class='flag-5'>SAS</b>-2<b class='flag-5'>集</b>成RAID配置實(shí)用程序用戶(hù)指南

    Yonghong Desktop端Excel 數(shù)據(jù)的優(yōu)化

    優(yōu)化,提升Excel?數(shù)據(jù)使用體驗(yàn)。趕快來(lái)試試看有沒(méi)有你想要的功能吧。 01 Excel?數(shù)據(jù)支持同時(shí)上傳多個(gè)文件,多個(gè)文件可以“合并
    的頭像 發(fā)表于 09-08 11:13 ?476次閱讀
    Yonghong Desktop端Excel <b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>集</b>的優(yōu)化