我正在尝试在SAS中连接一个长字符串,如果函数或三元运算符有内联函数,那么我可以在串联中嵌套IF语句。我在文档中找不到这一点。在DATA步骤中,我想做类似的事情:
myString = "some words " || dead == 1 ? 't' : 'f' || " some more words" ....
基本上,我正在尝试为演示Rails应用程序生成一些种子,以便我可以快速将一些SAS数据转储到SQLite数据库中。
如果在SAS中有任何类型的内联吗?
答案 0 :(得分:16)
ifc
函数(字符版本,ifn
数字)是SAS中的内联if
函数。 SAS中的那个将是:
myString = cat("some words ",ifc(dead=1,'t','f')," some more words");
(cat,catx等猫科函数比SAS中的||运算符更常用)。
答案 1 :(得分:0)
A more traditional SAS way to generate text based on the value of a variable is to define a format.
proc format ;
value dead 1='dead' 0='alive' other='unknown';
run;
...
myString = catx(' ','some words',put(dead,dead.),'some more words');