2013-07-28 2 views
8

Я пытаюсь объединить длинную строку в SAS, и было бы полезно иметь встроенную функцию if или trernary, чтобы я мог вставлять выражения IF в конкатенацию. Я не могу найти упоминания об этом в документах. На этапе DATA, я хотел бы сделать что-то вроде:Имеет ли SAS встроенную функцию if или тройной оператор?

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

В принципе, я пытаюсь создать некоторые семена для приложения демонстрации Rails, так что я могу сбросить некоторые данные SAS в базу данных SQLite быстро.

Есть ли какие-либо встроенные линии, если в SAS?

ответ

15

ifc функция (символ версия, ifn цифровой) встроенная функция if в SAS. То, что в SAS будет:

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

(семейные функции кошки, как кошки, Catx и т.д. чаще используются, чем оператор || в SAS.).

+0

Спасибо! Очевидно, я искал неправильное дерево. – Clay

0

Более традиционный способ SAS для генерации текста, основанный на значении переменной, заключается в определении формата.

proc format ; 
    value dead 1='dead' 0='alive' other='unknown'; 
run; 
... 
myString = catx(' ','some words',put(dead,dead.),'some more words'); 
Смежные вопросы