全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3724 3
2016-03-23
悬赏 50 个论坛币 已解决
部分数据情况如下:

QQ截图20160323142728.jpg

想要生成一个新变量mbfamily,在family变量值相同的观测值中,只要有一个mb等于1,则mbfamily=1
现在的想法是:
by FamilyId;
where [first._FamilyId and last._FamilyId];
mbfamily=(max(of mb{*}));
或者
by FamilyId;
if [first._FamilyId and last._FamilyId] then mbfamily=(max(of mb{*}));
由于刚接触sas,所以只有个思路,但是不知道正确的语句应该是怎样的,求大神指点/(ㄒoㄒ)/~~


最佳答案

caibirdcnb 查看完整内容

proc sql; create table temp as select family,sum(mb) as sum_mb,count(*) as N from dataset group by family; quit; 然后join你的dataset和temp: proc sql; create table new_dataset as select * from dataset as a left join temp as b on a.family=b.family; quit; 接着做条件判断: data new_dataset; set new_dataset; if sum_mb>=1 then mbfamily=1; else mbfamily=0; run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-3-23 14:33:49
proc sql;
create table temp as
select family,sum(mb) as sum_mb,count(*) as N
from dataset
group by family;
quit;

然后join你的dataset和temp:
proc sql;
create table new_dataset as
select *
from dataset as a left join temp as b
on a.family=b.family;
quit;

接着做条件判断:
data new_dataset;
set new_dataset;
if sum_mb>=1 then mbfamily=1;
else mbfamily=0;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-23 15:36:21
caibirdcnb 发表于 2016-3-23 15:12
proc sql;
create table temp as
select family,sum(mb) as sum_mb,count(*) as N
谢谢!!!
能问下我最后输出这个文件的语句应该是什么呢
我用这个没弄出来:接触sas不到3天的废跪求
proc export data=a outfile="F:\111.csv"
        dbms=csv replace;
        run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-3-23 15:58:32
弄明白了,谢谢大神!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群