由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教问题:提供有用信息我会发包子
相关主题
小包子:怎么读一个文件中的两个不同的delimiters也问几道SAS base 题目
请教,base 50 中的题目,a quick question importing txt into SAS
问个SAS 数据读入的问题请教个 SAS 读数据的问题
求教SAS问题修改再问:如何read multiple lines into one record and missing value at the same time in sas
A SAS infile problem##SAS, SOS!! Read a delimited file that has embedded delimiters in the data
请教一个SAS数据input的问题请教个有关SAS 的问题
请问sas中一个变量的内容被两个左斜杠(/)分成了三部分txt数据文档太大,如何提取到variable list?
怎么在EXCEL里把一个column的A/B分到两个column里?问个SAS SCAN的问题
相关话题的讨论汇总
话题: txt话题: 文件话题: num话题: file话题: 000007
进入Statistics版参与讨论
1 (共1页)
j**********e
发帖数: 442
1
各位大牛:
小弟有个问题。我有很多txt文件在一个folder中,每个文件都是固定格式。我想用SAS
读出每个文件第一行(比如下面的txt文件中的“000007”)和第四行(比如下面的txt文件中的“20011121”)的数据,然后合并为一份dataset,请大家出个主意。多谢

提供有用信息,我会发给包子,以表谢意。
比如说一个txt文件:
公司编号:000007
F_MEDIA:证券时报
标题:独立财务顾问报告
创建日期:20011121
x***x
发帖数: 3401
2
Set up a string variable to capture everything on each line.
then only keep records _n_=1 and _n_=4
Use a loop to read each file in the fold.
You can parse the information later.
j**********e
发帖数: 442
3
大牛啊,可否给个详细点的code啊。您给个详细点的code我运行没问题了给您发20个包子以表谢意

【在 x***x 的大作中提到】
: Set up a string variable to capture everything on each line.
: then only keep records _n_=1 and _n_=4
: Use a loop to read each file in the fold.
: You can parse the information later.

x***x
发帖数: 3401
4
if you are not in a hurry, i can do it when i have time. could be 1-3
days.

包子以表谢意

【在 j**********e 的大作中提到】
: 大牛啊,可否给个详细点的code啊。您给个详细点的code我运行没问题了给您发20个包子以表谢意
j**********e
发帖数: 442
5
比较急,因为过两天开会想把最新结果present出来。如您在百忙之中抽点时间帮帮我
,将不胜感激!

【在 x***x 的大作中提到】
: if you are not in a hurry, i can do it when i have time. could be 1-3
: days.
:
: 包子以表谢意

D*A
发帖数: 811
6
如果你的txt文件名有规律,比如file_1 到 file_1000,可以用下面的macro。
其中 infile部分,file_1.txt 换成你的文件名。do loop里,num=1 %to 后换成你最
后一个文件的编号,前提是你的文件名字有规律。如果没有规律,就手动复制粘贴文件名替
换那个file_1.txt。从data 开始 run到quit;run; 不用loop开头和结尾。
大牛请帮指正如和整个fold不同名字的run。我看到有相应option,没来得及仔细研究。
我针对的格式是:
Company:000007
F_MEDIA:Stock times
Title:Independent Finance Report
Create Time:20011121
/* 20个包子,(200伪币呦),呵呵 */
/* Run following codes from here */
%macro input_file;
%do num=1 %to 1;
data file_sub;
infile 'C:\Documents and Settings\SHUOY\My Docu

【在 j**********e 的大作中提到】
: 比较急,因为过两天开会想把最新结果present出来。如您在百忙之中抽点时间帮帮我
: ,将不胜感激!

j**********e
发帖数: 442
7
多谢高手指教!
我已经给您转账了20包子(伪币)。之前不知道一个包子是10个伪币(包子的价格什么
地方能查到呢?),所以要是您要200伪币,我就破产了。实在不好意思啊。。。

件名替
究。

【在 D*A 的大作中提到】
: 如果你的txt文件名有规律,比如file_1 到 file_1000,可以用下面的macro。
: 其中 infile部分,file_1.txt 换成你的文件名。do loop里,num=1 %to 后换成你最
: 后一个文件的编号,前提是你的文件名字有规律。如果没有规律,就手动复制粘贴文件名替
: 换那个file_1.txt。从data 开始 run到quit;run; 不用loop开头和结尾。
: 大牛请帮指正如和整个fold不同名字的run。我看到有相应option,没来得及仔细研究。
: 我针对的格式是:
: Company:000007
: F_MEDIA:Stock times
: Title:Independent Finance Report
: Create Time:20011121

j**********e
发帖数: 442
8
还有,请教一下如何指代宏变量。我的文件名为A(0),A(1),A(2)...
我尝试写成:
%do num=0 %to 10000;
infile 'C:\research\A(&num).txt';
可是SAS返回:
ERROR: Physical file does not exist, C:\research\A(&num).txt.
请大牛们看看错在哪里?多谢!

件名替
究。

【在 D*A 的大作中提到】
: 如果你的txt文件名有规律,比如file_1 到 file_1000,可以用下面的macro。
: 其中 infile部分,file_1.txt 换成你的文件名。do loop里,num=1 %to 后换成你最
: 后一个文件的编号,前提是你的文件名字有规律。如果没有规律,就手动复制粘贴文件名替
: 换那个file_1.txt。从data 开始 run到quit;run; 不用loop开头和结尾。
: 大牛请帮指正如和整个fold不同名字的run。我看到有相应option,没来得及仔细研究。
: 我针对的格式是:
: Company:000007
: F_MEDIA:Stock times
: Title:Independent Finance Report
: Create Time:20011121

s******r
发帖数: 1524
9
大牛? 都不敢回了。
装着胆子回一下,
try
infile “C:\research\A(&num).txt“

【在 j**********e 的大作中提到】
: 还有,请教一下如何指代宏变量。我的文件名为A(0),A(1),A(2)...
: 我尝试写成:
: %do num=0 %to 10000;
: infile 'C:\research\A(&num).txt';
: 可是SAS返回:
: ERROR: Physical file does not exist, C:\research\A(&num).txt.
: 请大牛们看看错在哪里?多谢!
:
: 件名替
: 究。

j**********e
发帖数: 442
10
您真是太谦虚了。这样确实就可以work了。给您发了20个伪币,聊表寸心。
有个问题是:根据上面的代码,在company和000007之间只能有:而不能有任何空格。有没有办法允许在:后有空格呢?
我才搞清楚,原来是中文的问题。中文一个字占两格,所以在读取冒号后面的值时有困难(到底为啥困难我也不明白)。我把冒号删除了然后在英文输入法环境下再添上冒号就可以了。但是文件太多,一个一个这样弄太费时间。大家有好办法吗?
附上整个宏(测试用,所以num只从0到1):
%macro input_file;
%do num=0 %to 1;
data file_sub;
infile "C:\research\A (&num).txt"
firstobs=1

delimiter=":" truncover;
input col_1 $20. ;
n=_N_;
if n=1 then company=scan(col_1,2,':');
retain company;
if n=4 then date=in
相关主题
请教一个SAS数据input的问题也问几道SAS base 题目
请问sas中一个变量的内容被两个左斜杠(/)分成了三部分a quick question importing txt into SAS
怎么在EXCEL里把一个column的A/B分到两个column里?请教个 SAS 读数据的问题
进入Statistics版参与讨论
s*******y
发帖数: 2977
11
真佩服那些拿着sas可以做任何事的牛人。读文件用Perl的话,几行code就解决了。
j**********e
发帖数: 442
12
恭请老大科普一下Perl(主要用途,主要参考书,tutorial),让小弟学习学习。多谢!

【在 s*******y 的大作中提到】
: 真佩服那些拿着sas可以做任何事的牛人。读文件用Perl的话,几行code就解决了。
s******r
发帖数: 1524
13
try
compress(scan(col_1,2,':'));
instead of scan only

有没有办法允许在:后有空格呢?
困难(到底为啥困难我也不明白)。我把冒号删除了然后在英文输入法环境下再添上冒
号就可以了。但是文件太多,一个一个这样弄太费时间。大家有好办法吗?

【在 j**********e 的大作中提到】
: 您真是太谦虚了。这样确实就可以work了。给您发了20个伪币,聊表寸心。
: 有个问题是:根据上面的代码,在company和000007之间只能有:而不能有任何空格。有没有办法允许在:后有空格呢?
: 我才搞清楚,原来是中文的问题。中文一个字占两格,所以在读取冒号后面的值时有困难(到底为啥困难我也不明白)。我把冒号删除了然后在英文输入法环境下再添上冒号就可以了。但是文件太多,一个一个这样弄太费时间。大家有好办法吗?
: 附上整个宏(测试用,所以num只从0到1):
: %macro input_file;
: %do num=0 %to 1;
: data file_sub;
: infile "C:\research\A (&num).txt"
: firstobs=1
:

j******o
发帖数: 127
z**k
发帖数: 378
15
hahaha, i just went from Perl to Python ~~~~

【在 s*******y 的大作中提到】
: 真佩服那些拿着sas可以做任何事的牛人。读文件用Perl的话,几行code就解决了。
j**********e
发帖数: 442
16
Perl和Python,请高手科普一下,让小弟也学习学习

【在 z**k 的大作中提到】
: hahaha, i just went from Perl to Python ~~~~
j**********e
发帖数: 442
17
谢谢指教。今天早上我用了批量改字符串的文件把冒号给改了。
祝scimitar兄面试顺利!

【在 s******r 的大作中提到】
: try
: compress(scan(col_1,2,':'));
: instead of scan only
:
: 有没有办法允许在:后有空格呢?
: 困难(到底为啥困难我也不明白)。我把冒号删除了然后在英文输入法环境下再添上冒
: 号就可以了。但是文件太多,一个一个这样弄太费时间。大家有好办法吗?

j**********e
发帖数: 442
18
谢谢jackdiao

【在 j******o 的大作中提到】
: This paper may be helpful.
: http://www2.sas.com/proceedings/sugi29/057-29.pdf

l*********s
发帖数: 5409
19
glad I don't have to deal with Chinese characters yet.
1 (共1页)
进入Statistics版参与讨论
相关主题
问个SAS SCAN的问题A SAS infile problem
请问一道sas base的题请教一个SAS数据input的问题
问两个sas的傻问题,怎么知道infile文件的内容呢?请问sas中一个变量的内容被两个左斜杠(/)分成了三部分
用SAS找单词怎么在EXCEL里把一个column的A/B分到两个column里?
小包子:怎么读一个文件中的两个不同的delimiters也问几道SAS base 题目
请教,base 50 中的题目,a quick question importing txt into SAS
问个SAS 数据读入的问题请教个 SAS 读数据的问题
求教SAS问题修改再问:如何read multiple lines into one record and missing value at the same time in sas
相关话题的讨论汇总
话题: txt话题: 文件话题: num话题: file话题: 000007