楼主: yuguo8891
6231 9

sas中变量循环相乘 [推广有奖]

  • 0关注
  • 0粉丝

已卖:149份资源

大专生

41%

还不是VIP/贵宾

-

威望
0
论坛币
588 个
通用积分
0.1800
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
326 点
帖子
49
精华
0
在线时间
40 小时
注册时间
2008-5-6
最后登录
2016-12-4

楼主
yuguo8891 在职认证  发表于 2011-6-28 17:54:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位大侠,比如我的数据集中有var1 var2 var3 var4·····var10,我想要我的对将数据集里的var1乘上var2,var3乘上var4,等等,这样的循环该如何写啊?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:各位大侠 VaR 数据集 如何写 变量 SAS 相乘

沙发
guoluo 发表于 2011-6-28 20:26:33
  1. data test;
  2.   set test;
  3.   array oldvar{10} var1-var10;
  4.   array newvar{5};
  5.   do i = 1 to dim(newvar);
  6.     newvar(i) = oldvar(2*i-1)*oldvar(2*i);
  7.   end;
  8.   drop i;
  9. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
cengpengyu + 2 + 2 + 2 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

藤椅
bobguy 发表于 2011-6-29 08:45:30
yuguo8891 发表于 2011-6-28 17:54
各位大侠,比如我的数据集中有var1 var2 var3 var4·····var10,我想要我的对将数据集里的var1乘上var2,var3乘上var4,等等,这样的循环该如何写啊?谢谢!
Question is not clearly defined.

Pairwise multiplies or var1*var2*...*var10?

板凳
yuguo8891 在职认证  发表于 2011-6-29 11:44:52
我想要var1和var2相乘得到一个结果,然后var3和var4相乘得到一个结果,这样循环下去~ 3# bobguy

报纸
bobguy 发表于 2011-6-30 09:04:40
yuguo8891 发表于 2011-6-29 11:44
我想要var1和var2相乘得到一个结果,然后var3和var4相乘得到一个结果,这样循环下去~ 3# bobguy
See 2 楼 .

地板
yuguo8891 在职认证  发表于 2011-6-30 10:25:59
非常感谢,另外,我还有一个问题想请教一下这位大侠:
为了说明清楚,我举个简单的例子:
比如现在我有数据如下,我该如何将li03的weight复制给li01和li02以及,以及将su03的为weight复制给su01 和su02?谢谢
name  weight
li01           .
li02           .
li03           56
su01        .
su02        .
su03         67




2# guoluo

7
jiayuan67 发表于 2011-6-30 22:53:50
如果name 命名规则,可以根据name的前两个字符分组,后两位数值作降序排列:

data a;
input name $  weight;
str=substr(name, 1 ,2);
datalines;
li01           .
li02           .
li03           56
su01        .
su02        .
su03         67
;
run;

proc sort data=a;
  by  str DESCENDING name ;
run;

data b;
set a;
by  str DESCENDING  name ;
retain r_wt;
if first.str then r_wt=weight;
if weight=. then  weight=r_wt;
r_wt=weight;
drop r_wt str;
run;

proc sort data=b;
  by  name ;
run;
人生若只如初见

8
桐瞳 发表于 2013-8-11 16:05:19
guoluo 发表于 2011-6-28 20:26
大神,如果我想要0.7 to 1.3与0.9 to 1.3两个数组之间两两相乘(即取0.7然后分别于0.9 1 1.1 1.2 1.3相乘,以此类推),代码是怎么样的呢?
学习是件辛苦但简单的事。

9
吕小布韦 发表于 2013-8-12 13:14:58
桐瞳 发表于 2013-8-11 16:05
大神,如果我想要0.7 to 1.3与0.9 to 1.3两个数组之间两两相乘(即取0.7然后分别于0.9 1 1.1 1.2 1.3相乘 ...
不知道你的数据是怎么排列的,假如是这样的。
data a;
array c c1-c16;
v=1;
do i=0.7 to 1.3 by 0.1;
do t=0.9 to 1.3 by 0.1;
c(v)=i*t;
v+1;
end;
end;
run;

10
桐瞳 发表于 2013-8-18 14:06:02
吕小布韦 发表于 2013-8-12 13:14
不知道你的数据是怎么排列的,假如是这样的。
data a;
array c c1-c16;
多谢多谢~
学习是件辛苦但简单的事。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-23 03:59