全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3091 5
2011-04-27
现在又大约100个数据集,每个数据集的名称不同,变量名称也不相同,但相同的列记录的观测的意义相同。
现在想跨数据集对这些变量求和,不知如何进行?
例如:
数据集1:dataset.a001,变量为a,b,c,d,e,f
数据集2:dataset.a002,变量为g,h, i,j,k,l
现想定义一个新变量HH,定义HH为原数据集中第二个变量和第五个变量的和,然后对每个数据集都是对第二个变量和第五个变量求和,不知如何处理?

菜鸟一枚,还请赐教!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-5-3 09:32:09
1# roberthk309
data a;
input x y;
datalines;
1 2
3 4
;
run;
data b;
input m n;
datalines;
3 5
2 7
;
run;


OPTIONS symbolgen mlogic mprint;
%macro sumcrossds(lib1=, lib2=, dsa=, dsb=, varnum1=, varnum2=);

proc sql;
select name into :i from dictionary.columns where libname=
%upcase("&lib1") and memname=%upcase("&dsa") and varnum=&varnum1;
select name into :j from dictionary.columns where libname=
%upcase("&lib2") and memname=%upcase("&dsb") and varnum=&varnum2;
QUIT;
data y;
merge &dsa(keep=&i) &dsb(keep=&j);
sum=&i+&j;
run;
%mend;

%sumcrossds (lib1=work, lib2=work, dsa=a, dsb=b, varnum1=
1, varnum2=2)


二维码

扫码加我 拉你入群

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

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

2011-5-3 09:47:31
不用merge吧......
楼主貌似是单表的指定变量操作
二维码

扫码加我 拉你入群

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

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

2011-5-4 21:07:13
复制代码
二维码

扫码加我 拉你入群

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

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

2011-5-5 11:24:55
楼上为什么这么复杂,是不是我理解错意思了?最后需要对每个数据集的HH求和吗?
data a1;
    input x y z;
datalines;
1 2 3
2 3 4
3 4 5
;
data a2;
    input a b c;
datalines;
11 12 13
21 22 23
31 32 33
;
run;
%macro sample;
%do i=1 %to 2;
data out&i;
set a&i;
array arr(*) _NUMERIC_;
HH=arr[1]+arr[3];
run;
%end;
%mend;
%sample
二维码

扫码加我 拉你入群

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

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

2011-5-5 15:21:18
感谢以上各位指点 按照275769263提供的方法解决了 谢谢!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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