SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 2680|回复: 6
打印 上一主题 下一主题

2个data间如何求和?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2014-1-13 01:25:26 | 只看该作者

2个data间如何求和?

已知2个data a,b,如下:
data a;
input unid $ x1 x2 x3 x4;
cards;
a001 2.5 1 19
a002 0.7 0 36
a003 1.4  .  8
a004 0.6 0 23
...
;
data b;
input var $ val;
cards;
x1 0.334
x2 -1.6
x3 5.1
x4 0.012
;
run;

*我想求data a中每行的和,i.e.:*;

data c; set a;
s=sum(x1*0.334,x2*(-1.6),x3*5.1,x4*0.012);
run;

问题1:如果data a 有很多的变量,比如50个,求和的时候就不可能hard code了。这种情况下,就想求教一下,该如何求和,macro或者其他办法?
问题2:如果data a有char变量x3 $, 又该如何应对?

谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2014-1-14 17:05:28 | 只看该作者

Re: 2个data间如何求和?

方法一:proc score
方法二:data step
方法三:proc iml
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2014-2-10 14:01:45 | 只看该作者

Re: 2个data间如何求和?

ARRAY
回复 支持 反对

使用道具 举报

10

主题

39

帖子

1075

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1075
QQ
地板
发表于 2014-2-16 20:19:24 | 只看该作者

array是最简单的,再加一个 _NUMERIC_ 关键字就搞定了!
回复 支持 反对

使用道具 举报

1

主题

12

帖子

103

积分

注册会员

Rank: 2

积分
103
5#
发表于 2014-2-16 21:52:05 | 只看该作者
本帖最后由 henryyhl 于 2014-2-16 21:53 编辑

学习了,谢谢分享。_all_ _numeric_ _character_这些关键字很好用
回复 支持 反对

使用道具 举报

0

主题

2

帖子

23

积分

新手上路

Rank: 1

积分
23
6#
发表于 2014-3-3 15:19:35 | 只看该作者
学习了,谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
7#
发表于 2014-4-8 16:09:20 来自手机 | 只看该作者
数组就是应对多列的好工具。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-12-22 00:07 , Processed in 0.186343 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表