如何动态地向datalines添加元素

时间:2014-04-21 05:07:41

标签: sas

我正在尝试使用基于用户输入数据的Dataline选项创建数据集。有没有办法在存储过程中动态添加Dataline中的值?如果不是我该怎么做呢?

编辑:我从用户那里获得了一系列数字输入。我想添加更多字段来形成我的数据集。简而言之,我尝试创建的数据集是来自用户的数组元素和基于这些输入数字的更多数据的组合。

用户输入:1234,2345,3 3456

数据集: 号码|文字| ID
1234 | “东西1”| 1
2345 | “东西2”| 2
3456 | “东西3”| 3

1 个答案:

答案 0 :(得分:0)

数据/卡不应用于任何类型的生产系统。除此之外,它们在%include中是非法的,通常用于生产系统。

我认为存储过程中的默认值是返回宏变量(基于输入表单中字段的name)。可以直接将其分配给数据集变量,或者如果要解析大量文本,请将宏变量写入文本文件并将其读入。有关正确处理此情况的正确方法的更多信息可能是可以在问题中获得更多信息。

根据编辑,并假设您在宏变量1234, 2345, 3456中获得值&number,您可以执行以下操作:

data want;
_numvar = "&number.";
do _t = 1 to countc(_numvar,",")+1;
  number = scan(_numvar,_t,",");
  text = catx(" ","Something",substr(number,1,1);
  id = input(substr(number,1,1));
  output;
  keep number text id;
end;
run;

我不知道你是如何构建textid所以我只是在那里做了一些事情。