2015-04-17 20 views
1

我創建一個名爲包含三個變量和三個觀察work.saleanalysis彙總數據集:SAS:從一個數據集中檢索分類彙總,並追加到變量在另一個

Sale_Analysis    SA_Count   SA_Amount 

Beginning Sale Amount  11796    15861502.76 
Redeemed     2026    2742861.09 
Final Sale Amount   9770    13118641.67 

我創建一個名爲工作第二彙總數據集.removals。

Reason     ES_Count    ES_Amount 

Size      1312     316639 
Value     3101     2083563 
Type      1211     2418995 
Other      9     15869 
Old      96     154821 
Bad      245     513487 

我想找出ES_Amount/SA_Amount其中SA_Amount =「最終銷售金額」和列添加到work.removals。換句話說,「每個清除桶中包含整個文件的最終銷售額的百分比是多少?」

這個練習在excel中非常容易,但在SAS中對我來說令人沮喪。

任何幫助將不勝感激。

回答

2

如果我正確地讀了你,你只需要將Sale_Analysis中的一個值複製到每行刪除行中。

有很多很好的方法可以做到這一點,但最簡單的:

data removals_2; 
    set removals; 
    if _n_=1 then set saleanalysis(where=(sale_analysis='Final Sale Amount') keep=sale_analysis sa_amount); 
    drop sale_analysis; 
run; 

你在做什麼是做第二set聲明,抓住從第二數據集中的變量(S)和看跌期權他們在輸出數據集上。由於他們只被帶入一次,只要您沒有by聲明,他們將保留每一行。 if _n_=1表示只在第一行執行此操作(之後,您將無法找到另一行,並且datastep會終止)。

使用sashelp.class一個簡單的例子:

data class; 
    set sashelp.class; 
    if _n_=1 then set sashelp.class(where=(name_barbara='Barbara') keep=name rename=name=name_barbara); 
run; 

一般來說,SAS合併數據是,你必須學習作爲自己的主題的東西。我會在網絡上搜索有關該主題的好文章(或者使用「合併數據」或「合併數據」和SAS作爲搜索條件)。這比excel更難,因爲你沒有直接引用其他單元格 - 但它也更強大。

+0

宏偉!謝謝,這是完美的! – jji87

相關問題