楼主: myocean7
1656 12

[原创博文] 不知道该用什么语句。。。 [推广有奖]

  • 0关注
  • 1粉丝

大专生

66%

还不是VIP/贵宾

-

威望
0
论坛币
331 个
通用积分
0
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
1013 点
帖子
36
精华
0
在线时间
68 小时
注册时间
2011-7-17
最后登录
2016-1-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
再求高手指教

原始数据:
Item     Range  Sale
A          0          10
A          1          20
A          2          20
B          0          10
B          2          20
B          3          30

Range一共有4个值:0,1,2,3.

希望得到的结果:
Item     Range        Sale
A          0                 10
A          1                 20
A          2                 20
A          3                   0
B          0                 10
B          1                   0
B          2                 20
B          3                 30


不知道怎么转换?。。。
二维码

扫码加我 拉你入群

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

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

关键词:不知道 range sale item 原始数据

沙发
456852 发表于 2011-9-16 01:33:54 |只看作者 |坛友微信交流群
sql的组合
data a;
input Item   $  Range  Sale
;
cards;
A          0          10
A          1          20
A          2          20
B          0          10
B          2          20
B          3          30
run;
proc sql;
create table final as
select c.item,c.range,case when missing(a.sale) then 0 else a.sale end as sale from
(select distinct item,b.range from a
, (select distinct range from a) as b) as c
left join a
on c.item=a.item and c.range=a.range ;
quit;
已有 1 人评分经验 收起 理由
crackman + 60 热心帮助其他会员

总评分: 经验 + 60   查看全部评分

使用道具

藤椅
myocean7 发表于 2011-9-16 01:45:32 |只看作者 |坛友微信交流群
456852 发表于 2011-9-16 01:33
sql的组合
data a;
input Item   $  Range  Sale
You are genius!  Thank you so much!!

使用道具

板凳
mintsummer 发表于 2011-9-16 04:49:37 |只看作者 |坛友微信交流群
这个直接用
proc sort;
by item range;
run;
不就可以了么?

使用道具

报纸
bobguy 发表于 2011-9-18 04:45:50 |只看作者 |坛友微信交流群
I will build a data template first and then update it. It is much more readable. See below

data template;
   do Item='A', 'B';
      do Range=0 to 3;
            Sale=0;
            output;
           end;
        end;
run;

data a;
input Item   $  Range  Sale
;
cards;
A          0          10
A          1          20
A          2          20
B          0          10
B          2          20
B          3          30
run;

data b;
  update template
         a;
  by Item Range;
run;

proc print;run;

使用道具

地板
leedx 发表于 2011-9-18 08:51:05 |只看作者 |坛友微信交流群
是啊,排序不就得啦,搞这么复杂~~~~?

使用道具

7
myocean7 发表于 2011-9-19 21:19:11 |只看作者 |坛友微信交流群
bobguy 发表于 2011-9-18 04:45
I will build a data template first and then update it. It is much more readable. See below

data t ...
Very interesting! Thanks!!

使用道具

8
yanan9256 发表于 2011-9-24 10:34:33 |只看作者 |坛友微信交流群
leedx 发表于 2011-9-18 08:51
是啊,排序不就得啦,搞这么复杂~~~~?
因为有缺失值的问题吧 貌似

使用道具

9
yanan9256 发表于 2011-9-24 10:35:43 |只看作者 |坛友微信交流群
leedx 发表于 2011-9-18 08:51
是啊,排序不就得啦,搞这么复杂~~~~?
可能因此用了 update

使用道具

10
ttklkl 发表于 2011-9-24 12:13:05 |只看作者 |坛友微信交流群
bobguy 发表于 2011-9-18 04:45
I will build a data template first and then update it. It is much more readable. See below

data t ...
Good method!
Stay Hungry. Stay Foolish.

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-3 00:25