全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2923 4
2010-12-13
请教:
有下列两个数据集:
data a;
input mingcheng$ danwei$ danjia; /*分别是名称、单位、单价*/
cards;
大米 斤 1.85
面粉 斤 0.39
豆油 斤 5.08
面条 把 1.4
鸡蛋 斤 5.3
牛肉 斤 15
;
run;
data b;
input mingcheng$ danwei$ shuliang;/*分别是名称、单位、数量*/
cards;
牛肉 斤 110.1
面粉 斤 1000
鸡蛋 斤 500
豆油 斤 350
;
run;
现在想将b数据集按照名称,并接到a数据集后面,得到下列数据集:
mingcheng  danwei  danjia   shuliang
大米         斤     1.85
面粉         斤     0.39    1000
豆油         斤     5.08    350
面条         把     1.4   
鸡蛋         斤     5.3     500
牛肉         斤     15      110.1
谢谢!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-12-14 01:06:36
data c;
   merge a b;
   by mingcheng;
run;

这段程序可以达到你的目的。
二维码

扫码加我 拉你入群

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

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

2010-12-14 10:03:41
merge前还需要对原数据集中的by变量排序。。
二维码

扫码加我 拉你入群

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

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

2010-12-14 21:56:20
谢谢楼上的各位指教!!

碰到一些问题,还望指教。
由于两个数据集的观测数量不一,各数据集的变量也比较多。
运行时遇到下列提示:

WARNING: 输入数据集为 BY 变量 mingcheng指定了多个长度。这可能导致意外的结果。
NOTE: MERGE 语句有多个数据集带有重复的 BY 值。

请教有没有更好的方法?
谢谢!!
二维码

扫码加我 拉你入群

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

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

2010-12-15 21:58:59
我这边运行没有出现那样的问题啊~
data a;
input mingcheng$ danwei$ danjia; /*分别是名称、单位、单价*/
cards;
大米 斤 1.85
面粉 斤 0.39
豆油 斤 5.08
面条 把 1.4
鸡蛋 斤 5.3
牛肉 斤 15
;
run;
data b;
input mingcheng$ danwei$ shuliang;/*分别是名称、单位、数量*/
cards;
牛肉 斤 110.1
面粉 斤 1000
鸡蛋 斤 500
豆油 斤 350
;
run;

proc sort data=a;
   by mingcheng;
run;
proc sort data=b;
   by mingcheng;
run;
data c;
   merge a b;
   by mingcheng;
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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