全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1049 4
2015-03-12
求和.xls
大小:(32.5 KB)

 马上下载


见附件中的三个例子,我现在需要对data中每一行的数据求和,并形成一个新的data。
但是每个data中的列数是不同的,列的名称也是不同的,请教如何用sas实现,谢谢!



二维码

扫码加我 拉你入群

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

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

全部回复
2015-3-13 01:02:08
you can use macro or array,
the array method is more straightforward, however, it still requires a lot of input work.




data c;
input aa bb cc dd ee;
cards;
5.82        3.47        1.92        0.66        3.74
4.46        7.15        5.63        9.87        8.77
4.09        0.65        8.54        2.96        6.89
2.21        2.98        3.97        8.57        4.68
7.41        0.25        2.74        8.86        8.13
2.31        5.81         7.8        4.38        7.84
5.96        8.5            6.87        7.74        6.59
8.97        6.29        1.42        1.54        3.05
9.32        7.05        1.38        8.54        7.04
5.16        4.87        3.57        9.71        4.84
9.18        6.25        4.78        9.55        8.15
;

data c;
set c;
array single(*) _numeric_;
sum1=sum(of single(*));
run;
二维码

扫码加我 拉你入群

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

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

2015-3-13 03:58:02
没太看懂你的问题,三个例子是三个datasets吗?最后你需要的dataset是要只包含三列sum吗?是的话,可以尝试用proc sql;
二维码

扫码加我 拉你入群

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

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

2015-3-13 10:20:54
nkesdyanglu 发表于 2015-3-13 03:58
没太看懂你的问题,三个例子是三个datasets吗?最后你需要的dataset是要只包含三列sum吗?是的话,可以尝试 ...
是三个不同的例子,只是做在一张表中方便查看,问题在于最后需要的不仅仅是每一行的sum,也还包括原始数据也就是data中的每一列。
我觉得难点在于,每个data的列数和列名都是不同的,所以不能直接用input,而且这些列的名字,我之后还需要在别的地方使用,不知道如何把这些列的名字传递给变量。
2楼的同学解决了求和的问题,但前面还是使用了input。

二维码

扫码加我 拉你入群

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

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

2015-3-14 17:48:39
如果你一开始拿到的是CSV文件的话,可以用proc import,那样也不会要求你一一写出列的名字。如果你一开始拿到的就是SAS数据文件的话,应该就可以直接运用array的方法了
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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