将数据集中的列输入到数组

时间:2018-07-26 07:34:37

标签: sas

我有33个不同的数据集,其中只有一列,并且都共享相同的列名/变量名;

  

net_worth

我想将值加载到数组中并在数据步骤中使用它们。但是我使用的数组应该取决于数据步骤中的分组(国家/地区)。一共有33个数据集和33个组(按城市划分的国家)。每个数据集都精确地对应一组。

下面是一个示例,其中按组在数据集中的外观如下:客户

  • 英国105(其他字段)
  • 英国102(其他字段)
  • 美国291(其他字段)
  • US 292(其他字段)

我可以获取一些建议,以了解如何在数组中输入列,然后在数据步骤中使用它们。还是您建议采用其他方式?

%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;

1 个答案:

答案 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;