楼主: wangyf0218
8628 12

[原创博文] 分隔符为多个字符 [推广有奖]

  • 0关注
  • 0粉丝

本科生

38%

还不是VIP/贵宾

-

威望
0
论坛币
11 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
886 点
帖子
68
精华
0
在线时间
91 小时
注册时间
2011-7-9
最后登录
2017-3-14

楼主
wangyf0218 发表于 2011-9-27 10:43:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
infile 里如果我想以字符串'ab'为分隔符,应该怎么写?
如果用dlm='ab'默认是以a或b为分隔符
谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:infile file NFI DLM 字符串 字符串

回帖推荐

yugao1986 发表于2楼  查看完整内容

结果: Obs x y z 1 sadf df s

本帖被以下文库推荐

沙发
yugao1986 发表于 2011-9-27 11:08:02
  1. data a;
  2. infile datalines dlmstr='ab' dsd truncover;
  3. input x $ y $ z $;
  4. datalines;
  5. sadfabdfabs
  6. ;
  7. proc print;
  8. run;
复制代码
结果:


                                        Obs     x      y     z

                                         1     sadf    df    s


已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

三人行必有我师

藤椅
playmore 发表于 2011-9-27 11:12:49
好像SAS里不认多个字符的分隔符吧,如果你用dlm='ab',然后原文件里用ab分隔的话,SAS也认为ab是一个分隔符,而不是两个

可能出现的问题是你原文件中单独出现的a和b也会识别为分隔符。不知道你这里的a和b就是指这两个字母或是其他任何字符。如果是用,!这样的,在原文件中不会连续出现的情形下,用dlm='ab'倒也还可以,否则就出问题了。
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

板凳
playmore 发表于 2011-9-27 11:14:34
yugao1986 发表于 2011-9-27 11:08
结果:
嗯,SAS原来可以认两个字符的分隔符了吗?
难道是我的版本太老了?
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

报纸
wangyf0218 发表于 2011-9-27 11:15:08
yugao1986 发表于 2011-9-27 11:08
结果:
好像我的不行,我用的是SAS9.1,不知道还有没有别的方式?无法识别dlmstr

地板
wangyf0218 发表于 2011-9-27 11:18:48
playmore 发表于 2011-9-27 11:12
好像SAS里不认多个字符的分隔符吧,如果你用dlm='ab',然后原文件里用ab分隔的话,SAS也认为ab是一个分隔符 ...
恩,我希望ab作为一个分隔符,不希望它把a和b这种野当成分隔符,我实际的分隔符为|+|,最主要中间还有空置,如果我用dsd,那么它就会把|,+都当成空格符,然后给我输出很多空值

7
soporaeternus 发表于 2011-9-27 11:22:54
先把多字符分隔符替换成单分隔符,再导入,比较傻,但是应该可以用
Let them be hard, but never unjust

8
yugao1986 发表于 2011-9-27 11:23:11
sas9.2以上版本支持
三人行必有我师

9
wangyf0218 发表于 2011-9-27 11:31:42
soporaeternus 发表于 2011-9-27 11:22
先把多字符分隔符替换成单分隔符,再导入,比较傻,但是应该可以用
额,文件比较大。。。
比较崩溃

10
yugao1986 发表于 2011-9-27 11:50:33
  1. /*sas9.1*/
  2. data test;
  3.   w='sadfabdfabs' ;
  4. run ;

  5. filename temp1 '&temp1' ;
  6. filename temp2 '&temp2' ;

  7. data _null_ ;
  8.   set test;
  9.   file temp1 ;
  10.   put w;
  11. run ;

  12. data _null_ ;
  13.   infile temp1 ;
  14.   input ;
  15.   file temp2 ;
  16.   _infile_ = tranwrd (_infile_, 'ab', '*') ;
  17.   put _infile_ ;
  18. run ;

  19. data xyz ;
  20.   infile temp2 dsd dlm = '*' ;
  21.   input (x y z) (:$char32.) ;
  22. run ;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
wangyf0218 + 1 + 1 + 1

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

三人行必有我师

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

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