8

我正在尝试在 SAS 中连接一个长字符串,如果有一个内联 if 函数或三元运算符会很有帮助,这样我就可以在连接中嵌套 IF 语句。我在文档中找不到提到这一点。在 DATA 步骤中,我想做类似的事情:

myString = "some words " || dead == 1 ? 't' : 'f' || " some more words" ....

基本上,我正在尝试为演示 Rails 应用程序生成一些种子,以便我可以将一些 SAS 数据快速转储到 SQLite 数据库中。

如果在 SAS 中,是否有任何类型的内联?

4

2 回答 2

18

ifc函数(字符版本,数字)是 SAS 中的ifn内联if函数。在 SAS 中将是:

myString = cat("some words ",ifc(dead=1,'t','f')," some more words");

(cat、catx 等 cat 家族函数比 SAS 中的 || 运算符更常用)。

于 2013-07-28T03:01:33.643 回答
1

基于变量值生成文本的更传统的 SAS 方法是定义格式。

proc format ;
  value dead 1='dead' 0='alive' other='unknown';
run;
...
myString = catx(' ','some words',put(dead,dead.),'some more words');
于 2017-04-10T01:50:23.370 回答