使用 SAS 将字符串格式化为子字符串
我是 SAS 格式的新手。
假设我有一个 NNN.xxx 形式的字符串,其中 NNN 是 z3 格式的数字。 xxx 只是一些文本。
例如
001.NUL 和 002.ABC
现在我可以定义一个格式 fff,这样 b = put("&NNN..&xxx.",fff.);仅返回 &xxx。部分?
我知道我们可以通过使用 b = substr("&NNN..&xxx.",5,3); 来实现这一点但我想要一种格式,以便我可以简单地将格式分配给变量,而不必从中创建新变量。
提前致谢。
I am new to SAS formats.
Say I have a string in the form of NNN.xxx where NNN is a number in the format of z3. and xxx is just some text.
E.g.
001.NUL and 002.ABC
Now can I define a format, fff, such that b = put("&NNN..&xxx.",fff.); returns only the &xxx. part?
I know we can achieve this by using b = substr("&NNN..&xxx.",5,3); but I want to have a format so that I can simply assign the format to a variable and not have to create a new variable out of it.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如前所述,我认为这可以通过自定义格式与 SAS 内置字符函数(即 CAT、CATX、CATS、CATT 等)的组合来实现。
As said, I think this can be achieved thru combination of custom defined formats along with SAS builtin character functions - i.e. CAT, CATX, CATS, CATT etc...
可能唯一的方法是使用 SAS/TOOLKIT 编写您自己的自定义字符格式。像使用 substr() 一样创建另一个变量会容易得多。
Probably the only way is to code your own custom character format using SAS/TOOLKIT. It will be much easier to create another variable as you do with substr().