2013-07-28 2 views
8

Próbuję połączyć długi ciąg w SAS i byłoby pomocne mieć wbudowany, jeśli funkcja lub potrójny operator, aby można zagnieździć instrukcji IF w konkatenacji. Nie mogę znaleźć wzmianki o tym w dokumentach. W etapie DANYCH, chciałbym zrobić coś takiego:Czy SAS ma wbudowany, czy funkcja lub potrójny operator?

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

Zasadniczo próbuję wygenerować kilka nasion do demonstracji Rails aplikacji, tak, że mogę zrzucić niektórych danych SAS do bazy danych SQLite szybko.

Czy istnieje jakiś wbudowany, jeśli w SAS?

Odpowiedz

15

Funkcja ifc (wersja znaku, ifn numeryczna) jest wbudowaną funkcją if w SAS. To z SAS może być:

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

(funkcje cat rodziny jak kot, CATx itd są powszechnie stosowane od operatora || w SAS.).

+0

Dzięki! Wyszukałem oczywiście niewłaściwe drzewo. – Clay

0

Bardziej tradycyjnym sposobem SAS do generowania tekstu na podstawie wartości zmiennej jest zdefiniowanie formatu.

proc format ; 
    value dead 1='dead' 0='alive' other='unknown'; 
run; 
... 
myString = catx(' ','some words',put(dead,dead.),'some more words');