這是我的輸入數據集:檢查一列存在,然後總和SAS
Ref Col_A0 Col_01 Col_02 Col_aa Col_03 Col_04 Col_bb
NYC 10 0 44 55 66 34 44
CHG 90 55 4 33 22 34 23
TAR 10 8 0 25 65 88 22
我需要計算Col_A0的%爲特定的參考。 比如%col_A0將作爲
10/(10+0+44+55+66+34+44)=.0395 i.e. 3.95%
計算所以我的輸出應該
參考%Col_A0%其他 NYC 3.95%96.05% CHG 34.48%,65.52% TAR 4.58%95.42%
我可以做這部分,但問題是列變量。 Col_A0和Ref是固定列,因此它們每次都會在輸入中出現。但其他專欄不會在那裏。還有一些額外的列,如Col_10,col_11直到col_30和col_cc直到col_zz。 例如輸入數據在某些情況下設置可以只是:
Ref Col_A0 Col_01 Col_02 Col_aa Col_03
NYC 10 0 44 55 66
CHG 90 55 4 33 22
TAR 10 8 0 25 65
那麼,有一種方法,我可以寫一個SAS代碼進行檢查,看是否該列存在與否。或者如果還有其他更好的方法來做到這一點。
這是我在企業指南中編寫的當前SAS代碼。
PROC SQL;
CREATE TABLE output123 AS
select
ref,
(col_A0/(Sum(Col_A0,Col_01,Col_02,Col_aa,Col_03,Col_04,Col_bb)) FORMAT=PERCENT8.2 AS PERCNT_ColA0,
(1-(col_A0/(Sum(Col_A0,Col_01,Col_02,Col_aa,Col_03,Col_04,Col_bb))) FORMAT=PERCENT8.2 AS PERCNT_Rest
From Input123;
quit;
所有列都不存在的情況我得到一個錯誤。如果有更多的列,那麼我想念那些。請指教。
感謝
有兩列a0_prop和數字。但都是空白的。 – learnlearn10
嘗試添加我不小心遺漏的_ ...這與Keith上面所嘗試的相同,只是它在datastep中工作('_numeric_'是一個包含所有數字變量的自動變量列表)。 – Joe
對不起。現在明白了。數字後我錯過了一個下劃線。完美的作品。 – learnlearn10