【发布时间】:2015-10-09 15:16:45
【问题描述】:
我正在尝试解析具有 300 多个字段的分隔数据集。而不是列出所有输入字段,如
data test;
infile "delimited_filename.txt"
DSD delimiter="|" lrecl=32767 STOPOVER;
input field_A:$200.
field_B :$200.
field_C:$200.
/*continues on */
;
我想我可以将所有字段名称转储到一个文件中,作为 sas 数据集读入,并填充输入字段 - 如果任何字段名称更改(添加/删除),这也可以让我动态控制数据集。有什么好的方法可以做到这一点?
非常感谢 - 我刚开始使用 sas,仍在努力解决它。
【问题讨论】:
-
听起来你在正确的道路上。您是否尝试过 Proc Import 还是想要更多控制权?
-
是的,我使用 proc import 来读取定义变量名称、长度、类型和标签的文件。从我广泛的谷歌来看,似乎最好的方法是编写一个宏——>读取头信息——>将数据文件输入语句输出到一个宏变量中——>在宏的末尾调用该宏变量.还没开始工作...
-
您必须发布您拥有的文件的样本,但您在正确的轨道上。您还应该发布您尝试过但不起作用的代码。
-
我想我想通了,把代码贴在下面。
-
当将有关文件的元数据作为数据给出时,问题是如何编写 SAS 程序来读取文件?如果是这样,您应该提供您拥有的元数据的示例。要读取文件,您需要知道变量名称、顺序、类型(以及字符变量的最大长度)。您还需要了解需要将文本转换为存储值的任何字段(如 DATE 或 TIME 字段)的信息。您可能还需要提供格式和标签。