楼主: YueweiLiu
1937 7

一个字符处理问题 [推广有奖]

  • 0关注
  • 11粉丝

硕士生

69%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
45 点
热心指数
45 点
信用等级
34 点
经验
2872 点
帖子
197
精华
0
在线时间
186 小时
注册时间
2011-9-15
最后登录
2023-5-29

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
问题来自Racoon,有兴趣的折腾折腾吧。
已有数据集:
  1. data have;
  2.         infile cards truncover;
  3.         input char $500.;
  4. cards;
  5. 犹解嫁东风
  6. 我是中国人啊
  7. 你是怎么了呢啊噢
  8. 嗯哪
  9. ;
复制代码
想得到的数据:
                                               char                char1

                                              犹解嫁东风          犹解
                                              犹解嫁东风          解嫁
                                              犹解嫁东风          嫁东
                                              犹解嫁东风          东风
                                              我是中国人啊        我是
                                              我是中国人啊        是中
                                              我是中国人啊        中国
                                              我是中国人啊        国人
                                              我是中国人啊        人啊
                                              你是怎么了呢啊噢    你是
                                              你是怎么了呢啊噢    是怎
                                              你是怎么了呢啊噢    怎么
                                              你是怎么了呢啊噢    么了
                                              你是怎么了呢啊噢    了呢
                                              你是怎么了呢啊噢    呢啊
                                              你是怎么了呢啊噢    啊噢
                                              嗯哪                         嗯哪



二维码

扫码加我 拉你入群

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

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

关键词:truncover infile 我是中国人 cards Input 我是中国人

本帖被以下文库推荐

沙发
soporaeternus 发表于 2011-9-28 14:29:16 |只看作者 |坛友微信交流群
  1. data _null_;
  2.         infile cards truncover;
  3.         input char $500.;
  4.                 do i=1 to klength(char)-1 by 1;
  5.                         char1=ksubstr(char,i,2);
  6.                         put _all_;
  7.                 end;
  8. cards;
  9. 犹解嫁东风
  10. 我是中国人啊
  11. 你是怎么了呢啊噢
  12. 嗯哪
  13. ;
  14. run;
复制代码
各位老师指正
已有 3 人评分学术水平 热心指数 信用等级 收起 理由
zhentao + 5 + 5 + 5 知道了klength的应用。
webgu + 1 + 1 + 1 有点意思
zhangzachary + 1 + 1 + 1 good~

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

Let them be hard, but never unjust

使用道具

藤椅
webgu 发表于 2011-9-28 16:30:59 |只看作者 |坛友微信交流群
soporaeternus 发表于 2011-9-28 14:29
各位老师指正
呵呵,请教下,klength  ,ksubstr  与length,substr有什么区别?  
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

板凳
YueweiLiu 发表于 2011-9-28 21:12:38 |只看作者 |坛友微信交流群
webgu 发表于 2011-9-28 16:30
呵呵,请教下,klength  ,ksubstr  与length,substr有什么区别?
带有k的一系列字符处理函数,都是针对双字节字符来设计的,中文、日语、汉语等都是属于双字节字符,比如“中国”,如果用length的话,会返回4,但是用klength的话,就会返回2.
  1. data have;
  2.         x=length("中国");
  3.         y=klength("中国");
  4.         put x y;
  5. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
webgu + 1 + 1 + 1 谢谢谢谢,已经体会到了。呵呵。

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

使用道具

报纸
YueweiLiu 发表于 2011-9-28 21:14:50 |只看作者 |坛友微信交流群
soporaeternus 发表于 2011-9-28 14:29
各位老师指正
哈哈。 我给racoon的代码,跟你这如出一辙,连 infile 这个语句都一样。不过我没用ksubstr,字符里只有双字节的,所以用substr也没有问题。

使用道具

地板
YueweiLiu 发表于 2011-9-28 21:46:46 |只看作者 |坛友微信交流群
  1. data want;
  2.         infile cards truncover;
  3.         input char $500. @;
  4.                 col=1;
  5.                 do until (ksubstr(_infile_,col,2)=" ");
  6.                         char1=ksubstr(_infile_,col,2);
  7.                         col+1;
  8.                         if klength(char1)>1 then output;
  9.                 end;
  10. cards;
  11. 犹解嫁东风
  12. 我是中国人啊
  13. 你是怎么了呢啊噢
  14. 嗯哪
  15. ;
  16. run;
复制代码
or
  1. data want;
  2.         set have;
  3.         num=1;
  4.         do until (ksubstr(char,num,2)=" ");
  5.                 char1=ksubstr(char,num,2);
  6.                 num+1;
  7.                 if klength(char1)>1 then output;
  8.         end;
  9. run;
复制代码
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
zhentao + 5 + 5 + 5 呵呵,都很了不起。
webgu + 1 + 1 + 1 循环语句着眼点不一样,本质上是一样的。

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

使用道具

7
shenliang_111 发表于 2011-10-31 18:43:02 |只看作者 |坛友微信交流群
YueweiLiu 发表于 2011-9-28 21:46
or
这个_INFILE_自动变量是什么意思呀?是在input buffer 还是PDV中了?

使用道具

8
zfpg 发表于 2011-11-7 23:42:48 |只看作者 |坛友微信交流群
soporaeternus 发表于 2011-9-28 14:29
各位老师指正
厉害

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 20:39