楼主: ryuuzt
6220 12

[原创博文] 求助:去掉汉字间的空格 [推广有奖]

  • 9关注
  • 8粉丝

已卖:98份资源

教授

86%

还不是VIP/贵宾

-

TA的文库  其他...

Gauss Related

Math Related

R Related

威望
0
论坛币
19030 个
通用积分
164.8048
学术水平
51 点
热心指数
76 点
信用等级
34 点
经验
152607 点
帖子
1687
精华
0
在线时间
1669 小时
注册时间
2010-6-16
最后登录
2025-12-28

楼主
ryuuzt 发表于 2012-9-11 22:08:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有个数据集,是从锐思下来的,见附件。
我想用compress把那个名字‘王 岚’间的空格去掉,可是怎么也去不掉。我是用的SAS9.3。我也试了kcompress,没有效果。
但是我用自己下面的这个程序试了compress,可以去掉汉字间的空格。为什么这个锐思数据库提供的数据集里的空格去不掉呢?

data a;
     name ='王   楠、丁建平、口   红';

data b;
   set a;
   length nm $30.;
   nm=compress(name);
run;

另外,涉及到中文的数据集,有时SAS要跑两遍才能出结果,是怎么回事?有遇到过相同问题的吗?
二维码

扫码加我 拉你入群

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

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

关键词:compress length Press 锐思数据库 comp 数据库 汉字 中文 程序 建平

tmp.rar
下载链接: https://bbs.pinggu.org/a-1174687.html

537 Bytes

本附件包括:

  • tmp.sas7bdat

回帖推荐

bobguy 发表于9楼  查看完整内容

First, you can use the substr function to find out what is its value for that space-like character, then compress that value. Example attached below, data _null_; z=catt('a', byte(1),'b'); zsp=compress(z, ' '); compvar=char(z,2); put compvar= ; *** see nothing; put compvar= hex2.;***see in hex value; put; zsp2=compress(z,compvar); put z= zsp= ...

本帖被以下文库推荐

沙发
nuomin 发表于 2012-9-11 22:14:27
多大的数据集?比较小的话粘贴到word里替换掉空格。如果太大的话还得想别的方法,你这个必须要用sas做吗?

藤椅
Imasasor 发表于 2012-9-11 22:21:18
试了一下,没有问题,不知道为什么,我的是9.13
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

板凳
ryuuzt 发表于 2012-9-12 11:46:43
nuomin 发表于 2012-9-11 22:14
多大的数据集?比较小的话粘贴到word里替换掉空格。如果太大的话还得想别的方法,你这个必须要用sas做吗?
对,太大了,如果手工去空格的话,一个是比较花时间,另外不好找。
搞不清楚,为什么有的时候要运行两遍才会有正常的结果。第一次往往是没有任何变化,第二次才会出结果。
谢谢。

报纸
ryuuzt 发表于 2012-9-12 11:47:37
Imasasor 发表于 2012-9-11 22:21
试了一下,没有问题,不知道为什么,我的是9.13
我也不知道为什么。我的9.2系统删掉了,不如可以试试。
谢谢。

地板
kevin_hi 发表于 2012-9-12 17:25:38
you can try this:
data test;
   name ='王   楠、丁建平、口   红';
   want=compress(name,"");
   put want;
   run;

7
bobguy 发表于 2012-9-13 10:33:01
It is NOT a space but a non-printable character.

8
zhentao 发表于 2012-9-13 13:41:53
bobguy 发表于 2012-9-13 10:33
It is NOT a space but a non-printable character.
thanks.
then how to remove it?

9
bobguy 发表于 2012-9-14 10:42:28
zhentao 发表于 2012-9-13 13:41
thanks.
then how to remove it?
First, you can use the substr function to find out what is its value for that space-like character, then compress that value. Example attached below,

data _null_;
     
          z=catt('a', byte(1),'b');
          zsp=compress(z, ' ');

          compvar=char(z,2);
          put compvar= ;   *** see nothing;
      put compvar= hex2.;***see in hex value;
          put;
         
          zsp2=compress(z,compvar);
          put z= zsp= zsp2=;

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

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

10
zhentao 发表于 2012-9-15 14:26:03
bobguy 发表于 2012-9-14 10:42
First, you can use the substr function to find out what is its value for that space-like character ...
thank you very much.

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

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