由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请问一个SAS proc sql的写法
相关主题
SAS code helpSAS question using PROC SQL 高手请进, 包子答谢
请教一个用SAS作DATA MERGE的问题【包子】merge 语句里的(in= )
请教一下SAS编程的一个问题借人 气问 两个 问题:
SAS应用问题sas问题
SAS helphelp for a sas question
请教 long form 的数据处理问题,先谢谢了!请教这种freq 该用什么code算(sas)?Thanks!
求助:一个SAS小程序请教一个sas求和的问题
诚心求教一个macro问题 很费解sas proc report的问题。
相关话题的讨论汇总
话题: proc话题: data1话题: sql话题: sas话题: run
进入Statistics版参与讨论
1 (共1页)
R******d
发帖数: 1436
1
某个数据集有很多变量,其中一个叫id。第二个数据集就一个id变量,而且是前一个数
据集id变量的子集。
我的问题是:能否用proc sql在第一个数据集里产生一个新的变量,如果第二个数据集
中的id变量包含于第一个数据集中的id变量中,则标记为1,否则标记为0。
谢谢。
a*z
发帖数: 294
2
use SAS proc sql case when.
Follow is my code. It works under SAS 9.4.
data A;
input id $ x y;
datalines;
01 3 4
02 4 5
03 5 6
04 6 7
;
run;
proc print; run;
data B;
input id $;
datalines;
02
04
06
;
run;
proc print; run;
proc sql;
create table want as
select A.*, case when id in (select id from B) then 1 else 0 end as idx
from A;
quit;
proc print; run;
Result:
Obs id x y idx
1 01 3 4 0
2 02 4 5 1
3 03 5 6 0
4 04 6 7 1
Try it out to see if this is what you want.
s*****e
发帖数: 422
3
这个可以吗?
proc sql;
select id, (case when dataset1.id=dataset2.id2 then 1 else 0 end) as dummy
from dataset1,dataset2(rename=(id=id2))
quit;

【在 R******d 的大作中提到】
: 某个数据集有很多变量,其中一个叫id。第二个数据集就一个id变量,而且是前一个数
: 据集id变量的子集。
: 我的问题是:能否用proc sql在第一个数据集里产生一个新的变量,如果第二个数据集
: 中的id变量包含于第一个数据集中的id变量中,则标记为1,否则标记为0。
: 谢谢。

R******d
发帖数: 1436
4
好用,谢谢了。

【在 a*z 的大作中提到】
: use SAS proc sql case when.
: Follow is my code. It works under SAS 9.4.
: data A;
: input id $ x y;
: datalines;
: 01 3 4
: 02 4 5
: 03 5 6
: 04 6 7
: ;

s*********a
发帖数: 2623
5
同一个例子的话,在data step里应该也可以做把
dataset A 多给一个variable 叫yes好了。设为0,
然后 dataset B里面也多给一个variable也叫yes,设为1,
然后用data c; update A B ; by id; run;

【在 a*z 的大作中提到】
: use SAS proc sql case when.
: Follow is my code. It works under SAS 9.4.
: data A;
: input id $ x y;
: datalines;
: 01 3 4
: 02 4 5
: 03 5 6
: 04 6 7
: ;

p******p
发帖数: 13
6
亲测可用,想覆盖data1的话把最后的new_data1改成data1就好,虽然覆盖源dataset习
惯很不好。
data data1;
input id t1 t2;
datalines;
1 2 3
2 4 5
3 4 5
;
run;
data data2;
input id;
datalines;
1
2
;
run;
proc sql noprint;
create table new_data1 as
select data1.*,coalesce(flag,0) as flag from
data1 left join (select data2.*,1 as flag from data2)
on data1.id=data2.id
;
quit;
1 (共1页)
进入Statistics版参与讨论
相关主题
sas proc report的问题。SAS help
神奇的proc means请教 long form 的数据处理问题,先谢谢了!
ask a sum function求助:一个SAS小程序
今天又“R”了 -- 感想和请教。诚心求教一个macro问题 很费解
SAS code helpSAS question using PROC SQL 高手请进, 包子答谢
请教一个用SAS作DATA MERGE的问题【包子】merge 语句里的(in= )
请教一下SAS编程的一个问题借人 气问 两个 问题:
SAS应用问题sas问题
相关话题的讨论汇总
话题: proc话题: data1话题: sql话题: sas话题: run