楼主: redaring
13568 15

如何导入一个有两种分隔符的txt [推广有奖]

  • 0关注
  • 0粉丝

硕士生

21%

还不是VIP/贵宾

-

威望
0
论坛币
48 个
通用积分
0.0600
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
4910 点
帖子
102
精华
0
在线时间
123 小时
注册时间
2009-11-22
最后登录
2018-2-15

楼主
redaring 发表于 2009-12-8 13:48:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据文件是txt格式的,第一行的分隔符为tab,后面的分隔符都为逗号,在导入时想把第一行作为变量名,其他所有行为数据,可是分隔符不知道该怎么设置。我用了proc import 导入,可是delimiter只能指定一个。由于我有好几百个数据文件,不能一个去把第一行的tab替换成逗号。
刚刚开始学习sas几天,很多基本的问题都不懂,希望各位前辈指点一下。谢谢了!

以下是我自己写的,可是没能实现我想要的效果:
proc import datafile="d:\testfile.txt" out=testfile;
delimiter=',';
getnames=yes;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:txt delimiter delimit import limit import 如何

沙发
lwien007 发表于 2009-12-8 14:27:22
指定两个分隔符   delimiter后边的分隔符包含,和 空格
proc import out=tmp
   datafile=''
   dbms=dlm replace;
   delimiter=', ';
run;

藤椅
redaring 发表于 2009-12-8 15:00:47
非常感谢啊!
我用数据试了一下,还是不行,log中显示说数据文件第一行 is not a valid SAS name,然后就自己给赋上默认的变量名了。但是如果我把第一行中的间隔符也改成用逗号,就没有这个问题,就可以把第一行的自动读为变量名。
不知道为什么……

板凳
lwien007 发表于 2009-12-8 16:01:00
楼主最好把出问题的数据文件传一个上来,看看。

报纸
redaring 发表于 2009-12-8 17:06:36
很可能我的问题没有表达清楚,我把数据贴上,希望高人指点一下。
由于数据太大,我把后面的数据都删掉了,但是数据的格式是没有变的。我试过还是没有办法把第一行自动作为变量名。
谢谢了!

地板
lwien007 发表于 2009-12-8 19:40:41
是你数据本身的问题,你的数据中的第一行即变量行不是以空格作为分隔符的,而是以TAB做为分隔符的,所以出现变量名不可用。
  1. proc import out=tmp
  2.         datafile='d:\test.txt'
  3.         dbms=dlm replace;
  4.         delimiter='2C09'x;
  5. run;
复制代码
上边的这个可以用于你的数据,不过由于你的第一行中有些变量重名,所以最后生成的数据集中重复的变量名采用sas自动设置的变量名代替

7
roki 在职认证  发表于 2009-12-8 20:56:13
用ultraedit批量替换功能把数据文件里面的‘,’都替换成制表符。写个宏就可以把几百个文件倒进SAS了。

8
edwardhuanghz 发表于 2009-12-9 11:21:47
可以帮你写个perl解析一下,如果是有linux操作系统的话

9
redaring 发表于 2009-12-9 11:37:13
非常感谢 lwien007 帮忙解决了我的一个大难题!

我还想请教一下这个 '2C09'x 是什么意思呢,我搜了一下,很多人程序里也有写这个,但是都没解释是什么意思,还有类似'0944'x 这种,请问在哪里可以获得关于这些的解释或相关的资料?

10
redaring 发表于 2009-12-9 11:39:39
roki 发表于 2009-12-8 20:56
用ultraedit批量替换功能把数据文件里面的‘,’都替换成制表符。写个宏就可以把几百个文件倒进SAS了。
谢谢您的建议,您这个提议似乎对我很有用,只是无论是写程序还是使用sas我都是个菜鸟,请问您可以详细解释一下,或者有个具体的示例吗,谢谢了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 21:37