全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1421 4
2014-08-30
悬赏 30 个论坛币 已解决
能否给写个宏程序,在数据集中循环定义变量,比如我现在想在另外一个数据集中定义lg1mark=lag1(mark),lg2mark=lag2(mark),一直到lg&n.mark=lag&n.(mark),
data temp;
input mark x ;
datalines;
1 5.8
1 5.5
1 5.3
1 4.8
1 4
1 3
1 2.5
1 2.4
1 2.3
1 2.2
2 4.7
2 4.3
2 3.6
2 5.0
2 5.6
2 5.1
2 3
2 2.5
2 2.4
2 2.3
;
run;

最佳答案

firefox29 查看完整内容

%let n=10; %macro df_lag; data temp;set temp; %do i=1 %to n; lg&n.mark=lag&n.(mark);%end; %mend; %df_lag;
二维码

扫码加我 拉你入群

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

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

全部回复
2014-8-30 21:16:13
%let n=10;
%macro df_lag;
data temp;set temp;
%do i=1 %to n;
lg&n.mark=lag&n.(mark);%end;
%mend;

%df_lag;
二维码

扫码加我 拉你入群

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

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

2014-8-31 10:09:32

这种问题我一般都在EXCEL里面做好copy past过来

1

lag1mark=lag1(mark);

2

lag2mark=lag2(mark);

3

lag3mark=lag3(mark);

4

lag4mark=lag4(mark);

5

lag5mark=lag5(mark);

6

lag6mark=lag6(mark);

7

lag7mark=lag7(mark);

8

lag8mark=lag8(mark);

9

lag9mark=lag9(mark);

10

lag10mark=lag10(mark);

11

lag11mark=lag11(mark);

12

lag12mark=lag12(mark);

13

lag13mark=lag13(mark);

14

lag14mark=lag14(mark);

15

lag15mark=lag15(mark);

16

lag16mark=lag16(mark);

17

lag17mark=lag17(mark);

18

lag18mark=lag18(mark);

19

lag19mark=lag19(mark);

20

lag20mark=lag20(mark);

21

lag21mark=lag21(mark);

22

lag22mark=lag22(mark);

23

lag23mark=lag23(mark);


例如第二列第一项可以在表格中填写
="lag"&A1&"mark=lag"&A1&"(mark);"
然后拉下来就可以了
二维码

扫码加我 拉你入群

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

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

2014-9-4 10:21:32
firefox29 发表于 2014-9-4 09:44
%let n=10;
%macro df_lag;
data temp;set temp;
不好意思,试了试不行
二维码

扫码加我 拉你入群

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

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

2014-9-10 11:52:50
小鳄鱼a 发表于 2014-9-4 10:21
不好意思,试了试不行
少了个run,貌似可以的吧
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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