全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2003 5
2010-09-25
请教大家一个问题,如果我有两个数据集,第一个数据集中有100个变量,第二个数据集有10个变量,并且第二个数据集中的10个变量的数据都在第一个数据集的100个变量之中,但是两个数据集的变量名是不一样的,请教怎么识别出第二个数据集中那10个变量在第一个数据集中的变量名。
二维码

扫码加我 拉你入群

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

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

全部回复
2010-9-25 11:45:33
proc compare 也许可以
二维码

扫码加我 拉你入群

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

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

2010-9-25 15:28:25
变量命名不规范。找你们的DBA骂一顿。
二维码

扫码加我 拉你入群

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

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

2010-9-26 04:18:42
小春1988 发表于 2010-9-25 10:28
请教大家一个问题,如果我有两个数据集,第一个数据集中有100个变量,第二个数据集有10个变量,并且第二个数据集中的10个变量的数据都在第一个数据集的100个变量之中,但是两个数据集的变量名是不一样的,请教怎么识别出第二个数据集中那10个变量在第一个数据集中的变量名。
Use proc means to calculate n mean std min max, if all of them are equal, then they are very very very like to be them same.
二维码

扫码加我 拉你入群

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

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

2010-9-26 08:59:28
可能需要考虑变量相同是指类似两个集合的相等,即无序相等
还是对于某个ID的有序相等
最为一般的方法就是将两个数据集的每个变量按本身排序,然后两两比较,理论上需要比较100×10次
针对某些情况可以优化减少对比次数
二维码

扫码加我 拉你入群

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

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

2010-9-26 12:54:11
data crackman1;
input x y z h;
datalines;
1 2 3 4
3 4 5 5
6 7 8 6
8 9 0 7
6 5 3 8
;
run;
data crackman2;
set crackman1;
keep y h;
rename y=n h=p;
run;
proc transpose data=crackman1 out=crackman11;
var _all_;
run;
proc transpose data=crackman2 out=crackman22;
var _all_;
run;
proc append base=crackman11 data=crackman22;
run;
data crackman11;
set crackman11;
n=compress(cat(of col1-col5));
run;
proc sort data=crackman11;
by n;
run;
data crackman11;
set crackman11;
by n;
if not (first.n and last.n);
run;



这仅仅是一个思路
可以参考
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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