2013-01-22 15 views
5

można używać symboli wieloznacznych w kroku keep kroku danych? Chcę wykonać następujące czynności (po lewej przyłączyć się z A na utrzymaniu B zmiennych x i y i wszystkich zmiennych zaczynając a):symboli wieloznacznych w kroku danych

data C; 
    merge A(in=a) 
      B(keep= x y var* in=b); 
    by x y; 
    if a; 
run; 

Odpowiedz

8

Tak, użyj :.

data C; 
    merge A(in=a) 
      B(keep=x y a: in=b); 
    by x y; 
    if a; 
run; 

(To nie jest dobry pomysł, aby powiedzieć in=a jeśli masz zmienną o nazwie a.)

Jeśli masz zmienne z numerów sekwencyjnych, jak a1, a2, ..., aN, można napisz a1-aN. A jeśli chcesz zestaw sąsiednich kolumn (np. varX, varY i varZ są fizycznie sąsiadują ze zbiorem danych), możesz powiedzieć varX--varZ. Różnica między tymi dwoma przykładami polega na tym, czy używasz jednego myślnika, czy dwóch.

+0

Witaj, dziękuję za szybką odpowiedź i wyjaśnienie! – statquant

+0

BTW, czy mogę używać wyrażeń regularnych lub podobnych, aby wybrać nazwy kolumn? – statquant

+0

Nie bezpośrednio. Możesz przejść przez osobny krok; na przykład masz słownik.columns, który jest tabelą zawierającą wszystkie nazwy kolumn i nazw tabel w bieżącej sesji. Można uruchamiać kwerendy w SQL przeciwko niemu lub przy użyciu równoważnej SAS sashelp.vcolumn, uruchamiać dane SAS przeciwko temu. Następnie zapisz wyniki w zmiennej makro i użyj tej makrozmiennej w rzeczywistym kroku utrzymania. – Joe

Powiązane problemy