全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2206 13
2012-07-26
有两组数据,一个是

ORIGIN_COUNTRYORIGIN_LOAD
DEU1.1
FRA0.98
GBR0.99
OTHER1.1



另外一个是
MakeCountry
MINIGBR
MINIGBR
VOLKSWAGENARG
VOLKSWAGENARG
VOLKSWAGENARG
VOLKSWAGENARG
CITROENFRA
PORSCHEDEU
VOLKSWAGENARG
CITROENFRA


怎么让他们 ORIGIN_LOAD加到第二个表里如果country = origin_country,否则的话就把other的值加到第二个里面。
看volkswagen 因为arg没在第一个表格里,所以他的origin_load就应该是other 的值 1.1。
有没有人知道的谢谢
!!!!!!!!


二维码

扫码加我 拉你入群

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

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

全部回复
2012-7-26 13:46:26
试试吧,写得不好,好久不用了,对于更大的数据集,可以采用循环语句,时间长了想不起来怎么用了。
令第一个数据集为a,第二个为b
data b; set b;
    if Country="DEU" or Country="FRA" or Country="GBR" then ORIGIN_COUNTRY=Country;
    else ORIGIN_COUNTRY="OTHER";
run;
proc sort data=a; by ORIGIN_COUNTRY;
proc sort data=b; by ORIGIN_COUNTRY;
data b; merge a b; by ORIGIN_COUNTRY; run;
二维码

扫码加我 拉你入群

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

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

2012-7-26 13:58:36
先谢谢你了,但是好像有问题,因为每个country的loading是不一样的。但是还是感谢你哦
二维码

扫码加我 拉你入群

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

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

2012-7-26 14:05:37
个人同意上面的解释
不知道您目前碰到的问题是什么,可以share一下您的code么?
二维码

扫码加我 拉你入群

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

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

2012-7-26 14:10:22
proc sort data=a(rename=(origin_country=country));
by country;
run;
proc sort data=b;
by country;
run;

data c;
merge a(in=x) b(in=y);
by country;
if y then do; if origin_load =. then  origin_load=1.1;output;end;
run;
可能写得不好
二维码

扫码加我 拉你入群

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

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

2012-7-26 14:22:51
proc sql;
create table c as
select b.*,(case when a.ORIGIN_LOAD is null then 1.1 else a.ORIGIN_LOAD end ) as ORIGIN_LOAD
from  ex2 b left join ex1 a on a.ORIGIN_COUNTRY=b.Country;
quit;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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