全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2235 7
2018-09-03
【求助】如何计算a列的每一个数值分别与b列的所有数值相加,取前3个最大的数之和作为新列
数据如下:
data test;
input a b;
cards;
3 2
4 3
1 4
2 5
6 7
;
run;
希望得到:
abc

3

7

27

4

3

30

1

4

21

2

6

24

6

5

36

c的第一个值为a的第一个值分别加上b的每一个值,然后取最大的三个值累加起来得到的。想问一下sas里这样的代码怎么写
二维码

扫码加我 拉你入群

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

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

全部回复
2018-9-3 17:34:22
觉得这是一个二重循环的问题,如果简单求和的话思路如下:
do i=1 to 7;
    do j=1 to 7;
        ci=ai+bj
    end;
end;
不知道sas里变量的行数怎么表达, ci=ai+bj这种写法在sas里无法实现。恳请各位大佬指教。
二维码

扫码加我 拉你入群

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

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

2018-9-3 21:12:59
这问题用Matlab感觉简单不少。导进去算就好啦。
二维码

扫码加我 拉你入群

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

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

2018-9-4 10:42:14
将b列转成行就行了
二维码

扫码加我 拉你入群

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

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

2018-9-5 23:20:32

aaaa

aaaaaa
二维码

扫码加我 拉你入群

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

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

2018-9-16 11:38:48
data test;
input a b;
cards;
3 7
4 3
1 4
2 6
6 5
;
run;

proc sort data=test out=test1 ;
by descending b ;
run;

data test2;set test1;
if _n_<=3 ;
run;

proc sql;
select sum(b) into :bb from test2 ;
quit;

data test3;
set test;
c=3*a+&bb.;
run;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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