Re: [程式] SAS 資料比對合併問題
※ 引述《Maninck (我是大天才^o^/)》之銘言:
: [軟體程式類別]:
: SAS
: [程式問題]:
: 資料處理
: [軟體熟悉度]:
: 新手(不到1個月)
: [問題敘述]:
: 資料A 資料B
: I_CODE VALUE ID CODE KIND
: AA123 U 01 AA123 B
: AA123 C 02 BB123 C
: BB123 D 03 CC123 F
: CC123 U 04 DD123 N
: CC123 F 05 EE123 A
: FF123 D
: 資料C
: I_CODE VALUE ID
: AA123 B 01
: AA123 C 02
: BB123 D 03
: CC123 F 04
: CC123 F 05
: 我想要做出資料C
: 亦即,以資料A為主體,
: 如果I_CODE在資料B的CODE有找,而且資料A的VALUE是U
: 那麼就將資料B的KIND押到資料A的VALUE
: 我試著用merge和update玩玩看,但試不出來
: 有什麼建議的語法或方向嗎?
DATA A;INPUT I_CODE $ VALUE $ ID $;
CARDS;
AA123 U 01
AA123 C 02
BB123 D 03
CC123 U 04
CC123 F 05
;
DATA B;INPUT CODE $ KIND $;
CARDS;
AA123 B
BB123 C
CC123 F
DD123 N
EE123 A
FF123 D
;
RUN;
PROC SQL;
CREATE TABLE C AS
SELECT A.I_CODE,
CASE WHEN A.I_CODE=B.CODE & A.VALUE='U' THEN B.KIND
ELSE A.VALUE END AS VALUE,A.ID
FROM A LEFT JOIN B
ON A.I_CODE=B.CODE;
QUIT;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.220.103
推
08/14 18:55, , 1F
08/14 18:55, 1F
推
08/14 19:03, , 2F
08/14 19:03, 2F
PROC SORT DATA=A;BY I_CODE;
PROC SORT DATA=B;BY CODE;
DATA C;MERGE A(IN=A) B(RENAME=(CODE=I_CODE));BY I_CODE;IF A;
IF VALUE='U' THEN VALUE=KIND;KEEP I_CODE VALUE ID;RUN;
※ 編輯: imaltar 來自: 218.168.220.103 (08/14 20:21)
推
08/14 21:37, , 3F
08/14 21:37, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):