我有33个不同的数据集,其中只有一列,并且都共享相同的列名/变量名;
net_worth
我想将值加载到数组中并在数据步骤中使用它们。但是我使用的数组应该取决于数据步骤中的分组(国家/地区)。一共有33个数据集和33个组(按城市划分的国家)。每个数据集都精确地对应一组。
下面是一个示例,其中按组在数据集中的外观如下:客户
我可以获取一些建议,以了解如何在数组中输入列,然后在数据步骤中使用它们。还是您建议采用其他方式?
%let var1 = uk105
%let var2 = uk102
.....
&let var33 = jk12
data want;
set customers;
by country city;
if _n_ = 1 then do;
*set datasets and create and populate arrays*;
* use array values in calculations with fields from dataset customers, depending on which by group. if the by group is uk and city is 105 then i need to use the created array corresponding to that by group;
答案 0 :(得分:2)
很难理解您想要什么。
听起来您有一个具有所有主要变量的数据集名称CUSTOMERS和一堆用于许多不同事物(国家/地区)的NET_WORTH值的单变量数据集。
假设所有数据集中的观测值都处于相同顺序,那么我认为您正在询问如何生成这样的数据步骤:
data want;
set customers;
set uk105 (rename=(net_worth=uk105));
set uk103 (rename=(net_worth=uk103));
....
run;
使用数据步骤最容易做到这一点。
filename code temp;
data _null_;
input name $32. ;
file code ;
put ' set ' name '(rename=(net_worth=' name '));' ;
cards;
uk105
uk102
;;;;
data want;
set customers;
%include code / source2;
run;