SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 841|回复: 4
打印 上一主题 下一主题

希望高手指教

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-2-27 17:02:24 | 只看该作者

希望高手指教

请教一个问题如果要把一列数中间的最后两位数字删掉这列数字是$型的,比如说25678R90要删掉90,sas程序应该怎么写呢,还有.CSV型的数据应该怎么读入呢,急用,希望高手指教,多谢了。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-2-27 20:20:16 | 只看该作者

Re: 希望高手指教

[code:2bld3o6s]
data a;
      t=reverse(trim(substr(reverse(trim(' 25678R90   ')),3)));
run;
[/code:2bld3o6s]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-2-27 22:40:47 | 只看该作者

Re: 希望高手指教

proc importout=sas-data-set
       datafile='external-file-name'
       dbms=csv;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-2-28 02:14:41 | 只看该作者

Re: 希望高手指教

在以下程序中,y和z均能达到目的。唯一的区别在于y的值中,所有leading空格全部消失;而在z值中所有的leading空格都被保留。

data a;
x=' 12345678R90 '; lengthx=length(x);
y=reverse(trim(substr(reverse(trim(x)),3))); lengthy=length(y);
z=substr(x,1,length(x)-2); lengthz=length(z);  
proc print; run;
***************************** Printout **********************************;
X                 LENGTHX        Y         LENGTHY        Z          LENGTHZ

12345678R90       12      12345678R       9       12345678R       10
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-2-28 14:58:22 | 只看该作者

Re: 希望高手指教

谢谢啦。 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 15:47 , Processed in 0.068412 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表