arrays - SAS 阵列无法处理一长串变量
问题描述
我正在尝试对我的输入数据进行对数、平方、立方和对数赔率转换,以提供对单变量回归中表现最佳的转换的详尽概述
我在具有 1,000 个变量的数据集上尝试了以下代码 - 它返回错误/内存不足或根本无法执行。使用数组以这种方式整体转换变量是否有任何限制?
/*Create a table for reference*/
DATA input_data;
ARRAY var_[*] var_1-var_1000;
DO i = 1 to 1000;
DO i = 1 to 1000;
var_(i)= i*j;
output;
END;
END;
RUN;
/*Log, square, cubic, logit transform all variables*/
DATA input_transform;
SET input_data;
ARRAY var[*] var_1-var_1000;
ARRAY log[*] log_1-log_1000;
ARRAY logit[*] logit_1-logit_1000;
ARRAY sq[*] sq_1-sq_1000;
ARRAY cubic[*] cubic_1-cubic_1000;
DO i = 1 to 1000;
log(i) = log(var(i));
logit(i) = log((var(i))/(1-var(i)));
sq(i) = var(i)**2;
cubic(i) = var(i)**3;
END;
RUN;
一个包含 5000 个变量的新数据集,每个变量都有各自的转换
解决方案
您正在使用I
作为两个或两个嵌套 do 循环的索引变量。那可能是把他们搞砸了。
此外,您的第一个数据步骤是编写 1,002 个变量的 1,000,000 个观察值,仅填充“数组”的左下三角形。您真的想要OUTPUT
循环内的语句吗?
推荐阅读
- c++ - 解决未更正的序列(4,3,2,1,5)并将其更改为更正的序列取决于我的建议
- firebase - Firebase 动态链接中的“其他平台”配置
- apache-spark - 如何从结构数组中提取所有元素?
- java - RecyclerView + SQLite 空白页
- phaser-framework - 使用 Phaser.io 中的 matter.js 使身体向前/朝向一个点
- node.js - 为什么 npm-remote-ls 命令返回的结果比 babel-loader 包的 Yarn install 命令多?
- laravel - 在 Laravel 中注册后,我在 Builder::getAuthIdentifierName() 中遇到错误
- reactjs - 反应笑话测试。无法使用 google js api 读取未定义的属性“地图”
- nginx - nginx 反向代理在删除其配置文件后仍然有效
- c# - DataGrid中的ComboxBox未在WPF中显示列表