gpt4 book ai didi

SAS 做循环 : use loop variable inside the loop to create lagged variables

转载 作者:行者123 更新时间:2023-12-04 06:27:29 26 4
gpt4 key购买 nike

我想创建包含大量滞后给定变量滞后值的变量。我怎么能这样做?我尝试以下操作:

data out; 
set in;
do i = 1 to 50;
%let j = i;
lag_&j = Lag&j.(x);
end;
run;

如何将循环变量 i 放入宏变量 j 中,或者如何直接使用它来创建适当命名的变量并用于 Lag 函数?

最佳答案

Chris J 回答了这个问题,但在这里我将提供我的首选方式。

%macro lagvar(var=,num=);
%do _iter = 1 %to &num.;
lag_&_iter. = lag&_iter.(&var.);
%end;
%mend lagvar;

data out;
set in;
%lagvar(var=x,num=50); *semicolon optional here;
run;

这是一个更模块化的宏循环用法(并且更具可读性,假设您使用智能名称 - 上面没问题,如果您想要非常清楚,您可以对名称做更多的事情,当然还可以添加注释).

关于SAS 做循环 : use loop variable inside the loop to create lagged variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25898255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com