Sas 变量列表中的通配符

Sas 变量列表中的通配符,sas,Sas,我(在SAS中)从一个我转置的表(因此变量名)中得到了这个简单的计算。我必须这样做几次,每次计算的供应变量数量都不一样。也就是说,在上面的例子中是485,但我在后面的分析中是这么做的,它是350 我的问题是:是否有一种方法可以“通配符”表示“供应”列的数量。基本上,我想要这样的东西(但这不起作用):totalSUPPLY=sum(of supply1 supply%) 另外:如果有一个更简单的方法做同样的Im开放(实际上更喜欢)的 谢谢大家 totalSUPPLY= sum(of supply1

我(在SAS中)从一个我转置的表(因此变量名)中得到了这个简单的计算。我必须这样做几次,每次计算的供应变量数量都不一样。也就是说,在上面的例子中是485,但我在后面的分析中是这么做的,它是350

我的问题是:是否有一种方法可以“通配符”表示“供应”列的数量。基本上,我想要这样的东西(但这不起作用):
totalSUPPLY=sum(of supply1 supply%)

另外:如果有一个更简单的方法做同样的Im开放(实际上更喜欢)的

谢谢大家

totalSUPPLY= sum(of supply1-supply485);
注意:这样使用
通配符只会在创建数组时拾取PDV中存在的匹配变量,因此数组定义必须位于set语句之后。此外,它仅适用于具有公共前缀的变量,而不适用于具有公共后缀的变量

正如Joe所指出的,以下更简洁的代码也适用:

data yoursummary;
  set yourdata; /*dataset containing supply1-supply485*/
  array supplies{*} supply:;
  totalSUPPLY = sum(of supplies{*});
run;

当然,如果你声明了一个数组,那么做相关的事情就更容易了,比如检查有多少个变量被添加到一起,或者循环数组中的变量,然后依次对每个变量应用相同的逻辑。

你不必在这里使用数组;你可以简单地说,
totalSUPPLY=sum(of supply:)
。为什么要在这个问题上加上标记?我之所以加上SQL标记,是因为我认为在SAS和SQL方面都有经验的人可能能够解决我的小问题。除非你问的问题特别包括SQL语言,否则请不要加上;这让人困惑,此外,它还导致在谷歌搜索结果中显示标签(因为它使用了更流行的标签)。如果是SQL而非SAS人员无法回答的SAS问题,请不要将其包括在内。
data yoursummary;
  set yourdata; /*dataset containing supply1-supply485*/
  totalSUPPLY = sum(of supplies:);
run;