loops - 引用宏变量
问题描述
假设我有一个包含 10 个变量的表:var1、var2... var10,我想从 10 个初始变量中创建其他 9 个变量:coef1、coef2.... coef9,例如:
coef1 = var2 gt .,
coef2 = var3 gt .,
...
coef9 = var10 gt .,
我尝试如下代码:
%macro mymacro;
%do i = 1 %to 9;
data mydata;
set mydata;
coef&i = var&i+1 gt .,
run;
%end;
%mend;
%mymacro;
但这不起作用,我想问题是SAS无法解决var&i+1。我应该怎么解决?
解决方案
使用数组而不是宏来循环变量。或者将您的数据重组为长格式并使用该格式。
data want;
set have;
array coef(*) coef:;
array _var(*) var2-var100;
do i=1 to 99;
coef(i) = _var(i+1) gt .;
end;
run;
推荐阅读
- mysql - 如何理解 MySQL 表创建中 PRIMARY KEY 和 '(' 之间的名称?
- php - 如何将事件插入为 - Out Office
- c# - 如何在 Powerpoint 应用程序中获取活动选项卡?
- c# - 如何获取 .Net Core 中进程的 CPU 使用率和虚拟内存?
- java - objectBox 支持数据加密吗?
- matrix - 如何使用 Lua 使用特征多项式计算矩阵根
- docker - Docker 运行:如何在没有命令的情况下运行 Ubuntu:16.04?
- jquery - 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
- azure-cosmosdb - Cosmos DB 中用户配置文件文档的适当分区键是什么
- php - 分别提交发票和数量发票的数量记录