[程式] 請問SAS將各變數的值放在同一變數裡

看板Statistics作者時間10年前 (2014/07/18 14:54), 10年前編輯推噓3(306)
留言9則, 3人參與, 最新討論串1/1
[程式問題]: 想將各變數的值放在同一變數裡 [軟體熟悉度]: 中 [問題敘述]: 不好意思,想請問一下,我有一組Data如下: Item A B A N A Y B missing B N B Y 現在我想新增一欄變數U,將AB整合在一起變成如下: Item A B  U A N       N A Y Y B missing missing B N N B Y Y [程式範例]: 不曉得該怎麼做比較好? 我目前想到的是用Macro的方法, 但跑出來的結果都不是我想要的,Code如下 Data D2; set D1; Call symput('AB' , Item); U = symget('AB'); Run; 這樣跑出來的結果是 Item A B  U A N      A A Y A B missing B B N B B Y B 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.175.169 ※ 文章網址: http://www.ptt.cc/bbs/Statistics/M.1405666495.A.66F.html

07/18 14:58, , 1F
會不會AB兩個欄位同時都有值?
07/18 14:58, 1F

07/18 15:01, , 2F
謝謝樓上網友。不會,AB兩欄一定只會其中一欄有值
07/18 15:01, 2F

07/18 15:01, , 3F
然後因為其實我ABCDE...總共有56欄變數(但每一列一定只有一
07/18 15:01, 3F

07/18 15:02, , 4F
欄有值),所以沒法簡單地用If..then來處理
07/18 15:02, 4F
※ 編輯: edsmom (211.76.175.169), 07/18/2014 15:14:07

07/18 21:51, , 5F
所以實際是將ABCDE有值的整在U?
07/18 21:51, 5F

07/18 23:55, , 6F
那這樣故事就很簡單了,請google一個函數叫coalescec
07/18 23:55, 6F

07/18 23:56, , 7F
他可以回傳一串變數中第一個非遺漏值
07/18 23:56, 7F

07/21 09:13, , 8F
謝謝West1996和imaltar 。原來用簡單的方式就可以處理了,
07/21 09:13, 8F

07/21 09:14, , 9F
我還傻傻地用巨集搞半天也沒成功,真的非常謝謝你們~
07/21 09:14, 9F
文章代碼(AID): #1JoCI_Pl (Statistics)