由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 发包子求大牛解SAS问题,急
相关主题
SAS菜鸟请教如果使SAS的output的结果放到一个文件内?[SAS]怎么快捷地删除Macro 里创建的临时dataset和macro variab
求助:一个SAS的小问题请教一个UNIX下面用SAS的弱智问题
How to set initial dataset to zero in a SAS macro?问个效率问题 SQL vs data step,大数据量
Help: an I/O ERROR occured求一段SAS code
一个SAS Macro和Append的问题,救助!求教 SAS base 123 Q 16
发包子问一个SAS问题SAS help : Proc dataset
SAS QuestionSAS 问题:关于比较variable 包子答谢
Dataset merge的一个问题请问怎么在SAS里面删掉某些特定的dataset?
相关话题的讨论汇总
话题: sas话题: stack话题: xml话题: macro话题: 数字
进入Statistics版参与讨论
1 (共1页)
a*****b
发帖数: 2789
1
1。我已经生成了xx.1000, xx.1234, xx.1357,xx.1948, xx.1738 等100个sas data。
怎么用loop或者marco把他们stack到一起?他们格式,变量名都相同。总之,除了数据
数量,其他都相同。我开始想把xx后面的数字提出来变成数字(在文件名中好像数字是
字符吧),然后从1000循环到2000,每次循环时又把数字变成字符.反正空文件stack了
不影响的吧。如果想法幼稚,请别拍,谢谢。
2.现有100个xml data文件(大于10MB每个),格式相同,可以使用同一个map文件。怎
样把它们读到一个sas文件里面?分开读是没有问题的,但写100个输入太痛苦,而且后
面处理太麻烦。
之前遇到同样问题,不过是读1000多个txt data,当时用filevar搞定了。今天尝试了
改程序读xml,失败。
第一个问题奉送包子1个,第二个问题包子2个。如果嫌少,可以商量,谢谢。
s**********0
发帖数: 41
2
1.
%macro stack();
%do i=1000 %to 2000;
proc append base=xx.all data=xx.&i force;
%end;
%mend stack;
2.
Write a macro to read 100 xml files into 100 SAS datasets. Then use the
macro in 1 to stack SAS datasets.
G**S
发帖数: 1108
3
2. Use Pipe to get all xml names into a sas dataset then use macro do loop;
filename YYY pipe "dir/b ""x:\xxxx\xx\*.xml""";

【在 s**********0 的大作中提到】
: 1.
: %macro stack();
: %do i=1000 %to 2000;
: proc append base=xx.all data=xx.&i force;
: %end;
: %mend stack;
: 2.
: Write a macro to read 100 xml files into 100 SAS datasets. Then use the
: macro in 1 to stack SAS datasets.

a*****b
发帖数: 2789
4
大牛们,今天要下班了,没时间验证,明天尝试一下。有问题的地方还请帮忙作答。谢
谢。包子随后送上。
p********a
发帖数: 5352
5
纯数字怎么能做DATASET名字?
你的想法我感觉不行。应为SAS不能操作不存在的DATASET。中间会出错停止。
%macro a;
data all;
set %do i=1 %to 2000;%if %sysfunc(exist(a&i)) %then a&i; %end;;
run;
%mend;
%a;

【在 a*****b 的大作中提到】
: 1。我已经生成了xx.1000, xx.1234, xx.1357,xx.1948, xx.1738 等100个sas data。
: 怎么用loop或者marco把他们stack到一起?他们格式,变量名都相同。总之,除了数据
: 数量,其他都相同。我开始想把xx后面的数字提出来变成数字(在文件名中好像数字是
: 字符吧),然后从1000循环到2000,每次循环时又把数字变成字符.反正空文件stack了
: 不影响的吧。如果想法幼稚,请别拍,谢谢。
: 2.现有100个xml data文件(大于10MB每个),格式相同,可以使用同一个map文件。怎
: 样把它们读到一个sas文件里面?分开读是没有问题的,但写100个输入太痛苦,而且后
: 面处理太麻烦。
: 之前遇到同样问题,不过是读1000多个txt data,当时用filevar搞定了。今天尝试了
: 改程序读xml,失败。

a*****b
发帖数: 2789
6
经验证,改进后的该程序可以运行,送包子一枚,望笑纳

【在 s**********0 的大作中提到】
: 1.
: %macro stack();
: %do i=1000 %to 2000;
: proc append base=xx.all data=xx.&i force;
: %end;
: %mend stack;
: 2.
: Write a macro to read 100 xml files into 100 SAS datasets. Then use the
: macro in 1 to stack SAS datasets.

a*****b
发帖数: 2789
7

对,sas会报错,但不会停止。最多就是空集stack到一起,不影响结果。
不过你的补充也很好,包子一枚。

【在 p********a 的大作中提到】
: 纯数字怎么能做DATASET名字?
: 你的想法我感觉不行。应为SAS不能操作不存在的DATASET。中间会出错停止。
: %macro a;
: data all;
: set %do i=1 %to 2000;%if %sysfunc(exist(a&i)) %then a&i; %end;;
: run;
: %mend;
: %a;

1 (共1页)
进入Statistics版参与讨论
相关主题
请问怎么在SAS里面删掉某些特定的dataset?一个SAS Macro和Append的问题,救助!
[合集] 请教一个sas问题发包子问一个SAS问题
怎么快速将 大的暂时sas data 存为永久sas data?SAS Question
问一个SAS macro的问题Dataset merge的一个问题
SAS菜鸟请教如果使SAS的output的结果放到一个文件内?[SAS]怎么快捷地删除Macro 里创建的临时dataset和macro variab
求助:一个SAS的小问题请教一个UNIX下面用SAS的弱智问题
How to set initial dataset to zero in a SAS macro?问个效率问题 SQL vs data step,大数据量
Help: an I/O ERROR occured求一段SAS code
相关话题的讨论汇总
话题: sas话题: stack话题: xml话题: macro话题: 数字