全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1259 1
2015-11-10
悬赏 10 个论坛币 未解决
求指导!

我有两组数据,我需要分别给两组数据赋予不同的权重然后算在不同权重下得到的结果,两组数据的权重加起来等于1。
比如:
A          B
1          32          4
3          5
4          6
5          7
6          8
7          9
8         10

给A组数赋予权重1%,相应的B的权重即位99% ,结果等于C组数=A*1%+B*99%,D组数=A*2%+B*99%。

依次类推,直到A的权重等于99%。

个人觉得应该可以用
do i=1 to 100;
_i=a*i/100+b*(100-i)/100;
end;

希望能有大神指点!

谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-10 12:36:45
You are almost right. If you define an array in the beginning, you should be fine.

Data newdata;
Array c {100} c1-c100;
Set Old;
Do i=1 to 100 by 1;
c [i] = a*l/100 + b *(100-i)/100;
Output;
End;
Run;

Or you could have one new column and use as by variable in your analysis:

Data new;
set old;
do weight =1 to 100 by 1;
C = a * weight / 100 + b * (1-weight/100);
Output;  /* this is important */
End;
Run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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