楼主: sdf3uinrre5
25955 8

[求助]请问各位高手:有没有从右侧截取字符串的SAS函数?? [推广有奖]

  • 0关注
  • 0粉丝

初中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
71 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
164 点
帖子
25
精华
0
在线时间
0 小时
注册时间
2007-6-17
最后登录
2009-11-22

楼主
sdf3uinrre5 发表于 2007-6-19 11:01:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

[求助]请问各位高手:有没有从右侧截取字符串的SAS函数??[求助]请问各位高手:有没有从右侧截取特定字符串的SAS函数??

就像Excell的Lightb()函数一样。

我是一名初学者,只知道SUBSTR(S)

二维码

扫码加我 拉你入群

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

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

关键词:SAS函数 字符串 有没有 EXCELL SUBSTR 函数 高手 SAS 字符

回帖推荐

bakoll 发表于8楼  查看完整内容

四楼思路是对的,从X字符串右侧截取n个字符可用函数Y=substr(X,length(X)-n+1,n)

ys0404 发表于7楼  查看完整内容

reverse好用 data a; a='12345678'; b=reverse(substr(reverse(a),1,2)); put a=b=; run;

nktiger1 发表于3楼  查看完整内容

Hi, You can use "reverse" function to reverse the string at first.

本帖被以下文库推荐

沙发
sdf3uinrre5 发表于 2007-6-19 11:05:00
例如:SUBSTR(X,3,4)的意思是从字符串X左边第三个字符开始截取4个字符。
如果从字符X右面第三个字符向左截取4个字符,应该怎么办呢??

藤椅
nktiger1 发表于 2007-6-19 11:48:00
Hi,
You can use "reverse" function to reverse the string at first.

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

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

板凳
zhiyong75 发表于 2007-6-20 12:22:00

靠,这么简单的问题:

DATA TEST;

X="123456789";

Y=SUBSTR(X,LENGTH(X)-6,4);

RUN;

搞定。

报纸
sdf3uinrre5 发表于 2007-7-11 23:53:00

我现在已经解决了这个问题,nktiger1说的有道理,

而zhiyong75老兄的做法有点问题,不信的话,老兄可以自己试一试!

地板
sparklem65 发表于 2008-7-23 16:28:00

其实很简单

data a;
a='12345678';
b=reverse(a);
c=substr(c,1,2);
put a=b=;
run;

7
ys0404 发表于 2010-9-8 09:23:32
reverse好用

data a;
a='12345678';
b=reverse(substr(reverse(a),1,2));
put a=b=;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

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

8
bakoll 发表于 2015-6-9 21:27:24
四楼思路是对的,从X字符串右侧截取n个字符可用函数Y=substr(X,length(X)-n+1,n)

9
赵安豆 发表于 2024-7-29 11:00:01
在SAS中,你可以使用`REVERSE()`和`SUBSTR()`函数组合来实现从右端截取字符串的功能。首先,使用`REVERSE()`函数将字符串反转,然后使用`SUBSTR()`函数从反转后的字符串的左端开始截取你需要的部分,最后再使用一次`REVERSE()`将其还原。

例如,如果你有一个变量`x="HelloWorld"`,你想从右侧截取5个字符(即"World"):

```sas
data want;
   x = "HelloWorld";
   length y $10; /* 确保目标变量的长度足够 */
   y = reverse(substr(reverse(x), 6));
   put y=;
run;
```

在这个例子中,`reverse(x)`会将"HelloWorld"反转为"dlroWolleH"。然后,使用`substr()`函数从第一个字符(即位置1)开始截取6个字符(包括空格),得到"dlroWo"。最后再通过`reverse()`将其反转回"World"。

如果你想要一个更简洁的版本,并且总是想从右边获取固定长度的字符串,你可以这样写:

```sas
data want;
   x = "HelloWorld";
   length y $10; /* 确保目标变量的长度足够 */
   y = substr(reverse(x), 6, 5); /* 注意第二个参数是起始位置,第三个是长度 */
   put y=;
run;
```

这里使用`substr()`函数时,第二参数表示从反转后的字符串中的第6个字符开始截取(即"dlroW"的"W"),并且截取5个字符。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

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