日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SAS对数据变量的处理

發(fā)布時(shí)間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAS对数据变量的处理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

SAS對(duì)數(shù)據(jù)變量的處理

? ? ?? 在使用DATA步基于已經(jīng)存在的數(shù)據(jù)集生成新數(shù)據(jù)集時(shí),可以指定在新數(shù)據(jù)集中不需要包含的變量而僅讀取其他變量,或者指定僅需要在 新數(shù)據(jù)集中包含的變量。該功能可以通過(guò)DATA步中的SET語(yǔ)句和數(shù)據(jù)集選項(xiàng)KEEP=和DROP=來(lái)實(shí)現(xiàn),也可以通過(guò)KEEP和DROP語(yǔ)句來(lái)實(shí)現(xiàn)。

1.使用數(shù)據(jù)集選項(xiàng)KEEP=和DROP=

使用數(shù)據(jù)集選項(xiàng)KEEP=和DROP=的基本形式如下:

DATA 新數(shù)據(jù)集; SET 原數(shù)據(jù)集 (KEEP|DROP=變量列表); RUN;

?讀取數(shù)據(jù)集sashelp.shoes中與產(chǎn)品銷售相關(guān)的變量Product、Stores和Sales,建立新數(shù)據(jù)集。代碼如下:

data work.shoes_part1; set sashelp.shoes (keep=Product Stores Sales); run; proc print data=work.shoes_part1 (obs=5) noobs; run;

在上面的代碼中,SET語(yǔ)句使用數(shù)據(jù)集選項(xiàng)KEEP=指定的Product、 Stores和Sales。PROC PRINT打印所生成的數(shù)據(jù)集work.shoes_part1的前5 條觀測(cè),如下圖所示??梢钥吹?#xff0c;該數(shù)據(jù)集中包含了變量Product、 Stores和Sales。

下面使用數(shù)據(jù)集選項(xiàng)DROP=來(lái)實(shí)現(xiàn)相同的功能,代碼如下:

data work.shoes_part2; set sashelp.shoes (drop=Region Subsidiary Inventory Returns); run;

? ? ?? 因?yàn)?span lang="en-us">sashelp.shoes的變量包含Product、Stores、Sales、Region、Subsidiary、Inventory和Returns,所以當(dāng)選項(xiàng)DROP=中指定了Region、 Subsidiary、Inventory和Returns時(shí),剩下的變量Product、Stores和Sales都 會(huì)被讀取并寫入數(shù)據(jù)集work.shoes_part2。所生成的數(shù)據(jù)集 work.shoes_part2和前面示例中生成的work.shoes_part1相同。

? ? ??簡(jiǎn)單來(lái)說(shuō),選擇使用選項(xiàng)KEEP=還是DROP=依賴于哪種方法會(huì)需 要指定較少的變量。但相比較而言,使用選項(xiàng)KEEP=會(huì)明確指明需要讀 取的變量,這樣在比較大的作業(yè)中可以避免讀取預(yù)期之外的變量。

2.使用KEEP和DROP語(yǔ)句?

DATA步中,KEEP和DROP語(yǔ)句同樣可用于選取寫入到新數(shù)據(jù)集 中的變量。使用DROP和KEEP語(yǔ)句的基本形式如下:

DATA 新數(shù)據(jù)集; SET 原數(shù)據(jù)集; KEEP|DROP變量列表; RUN;

  在該過(guò)程中,DATA步會(huì)讀取原數(shù)據(jù)集的所有變量,但在寫入新數(shù)據(jù)集前只保留部分變量。新數(shù)據(jù)集中包含的變量由所使用的語(yǔ)句(KEEP語(yǔ)句或DROP語(yǔ)句)給出的變量列表確定。使用KEEP語(yǔ)句表示 只選取變量列表中變量,而使用DROP語(yǔ)句則表示選取除變量列表之外的其他所有變量。

讀取數(shù)據(jù)集sashelp.shoes中跟產(chǎn)品銷售相關(guān)的變量Product、Stores和Sales,建立新數(shù)據(jù)集。

下面兩段代碼分別使用KEEP語(yǔ)句和DROP語(yǔ)句來(lái)完成上述功能,生成數(shù)據(jù)集work.shoes_part3和work.shoes_part4。

代碼1:

data work.shoes_part3; set sashelp.shoes; keep Product Stores Sales; run;

代碼2:

data work.shoes_part4; set sashelp.shoes; drop Region Subsidiary Inventory Returns; run;

在代碼1中,DATA步會(huì)讀取數(shù)據(jù)集sashelp.shoes中的所有變量,并 選取KEEP語(yǔ)句指定的Product、Stores和Sales創(chuàng)建新數(shù)據(jù)集 work.shoes_part3。在代碼2中,DATA步的DROP語(yǔ)句指定了Region、 Subsidiary、Inventory和Returns,那么剩下的變量Product、Stores、Sales 會(huì)被選取寫入數(shù)據(jù)集work.shoes_part4。這里所生成的數(shù)據(jù)集 work.shoes_part3和work.shoes_part4也和work.shoes_part1相同。

使用KEEP語(yǔ)句還是DROP語(yǔ)句,與選擇使用數(shù)據(jù)集選項(xiàng)KEEP=還是DROP=的標(biāo)準(zhǔn)一樣。從上面的示例中可以看出,它們都可以實(shí)現(xiàn)相 同的功能。

開(kāi)發(fā)程序時(shí)具體該怎樣選擇

(讀取速度快、效率高、不能對(duì)未保留得字段進(jìn)行處理): ? 1.使用數(shù)據(jù)集選項(xiàng)KEEP=和DROP=

(讀取速度慢、效率差、可以多個(gè)數(shù)據(jù)集,可以對(duì)未保留得字段進(jìn)行處理):2.使用KEEP和DROP語(yǔ)句?

3.一個(gè)DATA步中創(chuàng)建多個(gè)數(shù)據(jù)集

數(shù)據(jù)集選項(xiàng)KEEP=和DROP=除了可以在SET語(yǔ)句中使用之外,還可以用于DATA語(yǔ)句中指定的數(shù)據(jù)集。這樣就可以在一個(gè)DATA步中通過(guò) 給每個(gè)數(shù)據(jù)集使用選項(xiàng)KEEP=和DROP=來(lái)創(chuàng)建包含不同變量的多個(gè)數(shù) 據(jù)集。而KEEP和DROP語(yǔ)句卻實(shí)現(xiàn)不了該功能,因?yàn)樗鼈儠?huì)影響所有的 輸出數(shù)據(jù)集。

分別讀取數(shù)據(jù)集sashelp.shoes中關(guān)于產(chǎn)品銷售情況的變量

Product、Stores及Sales)和產(chǎn)品庫(kù)存情況的變量(Product、Inventory 及Returns),并將這兩類變量寫入兩個(gè)數(shù)據(jù)集work.shoes_sales和 work.shoes_inventory。

代碼如下:

data work.shoes_sales (keep=Product Stores Sales) work.shoes_inventory (keep=Product Inventory Returns); set sashelp.shoes; run; proc print data=work.shoes_sales (obs=5) noobs; title "Product Sales"; run; proc print data=work.shoes_inventory (obs=5) noobs; title "Product Inventory"; run;

兩個(gè)PRINT過(guò)程打印的數(shù)據(jù)集work.shoes_sales和 work.shoes_inventory中的前5條數(shù)據(jù)分別如下圖左和下圖右所示。它們分別 包含變量Product、Stores、Sales和Product、Inventory、Returns。

4.有效地使用數(shù)據(jù)集選項(xiàng)KEEP=和DROP=

DATA步中,可在DATA語(yǔ)句和SET語(yǔ)句中使用數(shù)據(jù)集選項(xiàng) KEEP=和DROP=。在DATA語(yǔ)句使用這些選項(xiàng),PDV中會(huì)包括輸入數(shù)據(jù) 集中的所有變量,不過(guò),只有當(dāng)變量從PDV中寫入結(jié)果數(shù)據(jù)集時(shí),這些 選項(xiàng)才會(huì)產(chǎn)生影響。然而,在SET語(yǔ)句中使用這些選項(xiàng)時(shí),這些選項(xiàng)會(huì) 確定哪些變量要從輸入數(shù)據(jù)集中讀取到PDV中,也就是說(shuō),SAS不會(huì)將 未包括的變量讀入PDV。在數(shù)據(jù)集很大時(shí),這種方式會(huì)使程序執(zhí)行更有效率。

在上面代碼的基礎(chǔ)上可在SET語(yǔ)句中增加選項(xiàng)DROP=來(lái)控制變量Region和Subsidiary不被讀入PDV,以提高程序執(zhí)行效率。如下:

data work.shoes_sales (keep=Product Stores Sales) work.shoes_inventory (keep=Product Inventory Returns); set sashelp.shoes (drop=Region Subsidiary); run;

有時(shí)候,部分變量雖然不需要輸出到新數(shù)據(jù)集,但在進(jìn)行運(yùn)算處理 時(shí)卻需要用到,這時(shí)候這些變量必須被讀入PDV中,那么此時(shí)就不適合 在SET語(yǔ)句中使用數(shù)據(jù)集選項(xiàng)KEEP=和DROP=了。對(duì)于這種情況,可在 DATA語(yǔ)句中使用數(shù)據(jù)集選項(xiàng)KEEP=、DROP=,或使用KEEP、DROP 語(yǔ)句來(lái)實(shí)現(xiàn)。

小結(jié):

重點(diǎn)掌握關(guān)鍵字:set、keep、drop

1、set? 表示需要建立數(shù)據(jù)集的初始數(shù)據(jù)集

2、keep、drop表示需要保留以及刪除的字段名;可以用于data 后面的數(shù)據(jù)集的命名,set初始化數(shù)據(jù)集;以及data步單獨(dú)使用。

?

轉(zhuǎn)載于:https://www.cnblogs.com/suolilian/p/10490187.html

總結(jié)

以上是生活随笔為你收集整理的SAS对数据变量的处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。