SAS中set的幾個問題比較

2021-07-26 21:50:36 字數 1626 閱讀 8983

given the sas data sets:

work.first work.second

common

xcommonya

10a1a

13a3a

14b4b

9b2

the following  sas program is submitted:

'data work.combine;

set work.first;

set work.second;

run;'

what data values are stored in data set work.combine?

答案:

commonxy

a101a

133b14

4b92

the following  sas program is submitted:

'data work.combine;

set work.first

work.second;

run;'

what data values are stored in data set work.combine?

答案:

commonxy

a10.a

13.a14

.b9.

a.1a

.3b.

4b.2

given the sas data sets:

work.one work.two

x

ysumya10

36a3a

14b9

the following  sas program is submitted:

'data work.combine;

if _n_=1 then set work.two;

set work.one;

run;'

what data values are stored in data set work.combine?

答案:

sumyxy

36a1036a3

36a1436b9

對於例1中的兩種情況,關鍵是理解第一種情況下兩個set,共用乙個pdv,就是兩個指標讀取資料,寫到同乙個pdv裡面去。而第二種情況是乙個set,乙個pdv,只有乙個指標讀取資料,先讀完first資料集裡面的資料,再去讀second資料集的資料。

例2是乙個較為經典的用法,其主要作用是當單條記錄資料集和多條記錄資料集沒有公共變數可以merge的時候,將這兩個資料集拼接在一起的一種方法,尤其是需要在已知資料集的後面拼上總和這一列資料的時候。而這種寫法之所以有效,是因為set語句讀取資料的時候,預設保留上一條記錄的值,這有點類似於retain語句的功能。pdv是不會被清空的,只會保留上一條記錄的值,當讀取下一條記錄的時候,就改寫上一條記錄的值,所以我們在其它情況下很難注意到。

參考資料

the little sas book.

sas help

Linux中的幾個問題

明天期末考試,就把往年試卷上的敘述題總結一下 1.如果乙個設定使用者id程式未執行任何改變程序的實際使用者id和有效使用者id的系統呼叫,那麼執行該程式的程序,它的實際使用者id和有效使用者id各是什麼?答 實際使用者id在登入時取自口令檔案中的登入項,如果沒有執行任何改變實際使用者id和有效使用者...

boost log 中的幾個問題

boost 日誌示例中有乙個錯誤 下面這個檔案 應該在開頭加一行 include 否則會出下列錯錯誤 error c2027 使用了未定義型別 boost log v2s mt nt5 expressions aux date time formatter generator traits d li...

MS SQL中的幾個問題

1,儲存過程中用到的 n 的意義.n的作用就是如果你的作業系統是簡體中文,你在n後面的單引號裡輸入了日本 德文 法文什麼的,能保證你的字串是正確的,這時n就要必寫 反之如果n後面的單引號裡只有英文和簡體中文 長度不能超過十幾k 那這個n寫與不寫是一樣的。上面的解釋和你所看到是同乙個意思,簡單的可以認...