[英]How to create new column in PROC SQL with sum of values per month in SAS enterprise Guide?
[英]How to fill column using values in 2 other columns in PROC SQL / SAS code in SAS Enterprise Guide?
我在 SAS 企業指南中有如下表:
數據類型:
VAL1 - 字符
ID - 數字
VAL2 - 字符(只有 3 個可能的值:P、C、S)
ID | 事件 | 年級 |
---|---|---|
123 | 紐約 | 磷 |
123 | 紐約 | 磷 |
123 | 紐約 | 小號 |
55 | 瘋狂的 | C |
55 | 瘋狂的 | 小號 |
55 | 倫敦 | 小號 |
ID - 帶有 ID 的列
EVENT - 事件名稱
GRADE - 事件評估(標記)
我需要創建一個表,其中將是事件的 ID、EVENT 和 GRADE,但是:
因此,我需要以下內容:
ID |EVENT|GRADE
----|-----|----
123 | NY | P --> because P is more important than S
55 | MAD | C --> because C is more important than S
55 | LON | S --> because has only S
如何在普通 SAS 代碼或企業指南中的 PROC SQL 中執行此操作? :)
這是一個基於 SQL 的解決方案,假設C
和P
僅在每個 id 和事件中出現一次。 我們將為C
、 P
和S
賦值:
C, P = 1
S = 2
如果我們在每個(id, event)
中取最小值,我們將得到一個按層次順序排列的唯一 ID 和事件列表。
proc sql;
create table want(drop=value) as
select distinct
id
, event
, grade
, CASE when grade IN('C', 'P') then 1 else 2 END as value
from have
group by id, event
having value = min(value)
;
quit;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.