SAS - Ciągi

Łańcuchy w sygnaturze dostępu Współdzielonego to wartości ujęte w parę pojedynczych cudzysłowów. Również zmienne łańcuchowe są deklarowane poprzez dodanie spacji i znaku $ na końcu deklaracji zmiennej. SAS ma wiele zaawansowanych funkcji do analizowania i manipulowania łańcuchami.

Deklarowanie zmiennych łańcuchowych

Możemy zadeklarować zmienne łańcuchowe i ich wartości, jak pokazano poniżej. W poniższym kodzie deklarujemy dwie zmienne znakowe o długości 6 i 5. Słowo kluczowe LENGTH służy do deklarowania zmiennych bez tworzenia wielu obserwacji.

data string_examples;
   LENGTH string1 $ 6 String2 $ 5;
   /*String variables of length 6 and 5 */
   String1 = 'Hello';
   String2 = 'World';
   Joined_strings =  String1 ||String2 ;
run;
proc print data = string_examples noobs;
run;

Po uruchomieniu powyższego kodu otrzymujemy wyjście, które pokazuje nazwy zmiennych i ich wartości.

Funkcje łańcuchowe

Poniżej znajdują się przykłady niektórych funkcji SAS, które są często używane.

SUBSTRN

Ta funkcja wyodrębnia podciąg na podstawie pozycji początkowej i końcowej. W przypadku braku pozycji końcowej wyodrębnia wszystkie znaki do końca łańcucha.

Składnia

SUBSTRN('stringval',p1,p2)

Poniżej znajduje się opis użytych parametrów -

  • stringval jest wartością zmiennej łańcuchowej.
  • p1 to pozycja początkowa ekstrakcji.
  • p2 to końcowa pozycja ekstrakcji.

Przykład

data string_examples;
   LENGTH string1 $ 6 ;
   String1 = 'Hello';
   sub_string1 = substrn(String1,2,4) ;
   /*Extract from position 2 to 4 */
   sub_string2 = substrn(String1,3) ;
   /*Extract from position 3 onwards */
run;
proc print data = string_examples noobs;
run;

Po uruchomieniu powyższego kodu otrzymujemy wyjście, które pokazuje wynik działania funkcji substrn.

TRIMN

Ta funkcja usuwa końcową spację z ciągu.

Składnia

TRIMN('stringval')

Poniżej znajduje się opis użytych parametrów -

  • stringval jest wartością zmiennej łańcuchowej.
data string_examples;
   LENGTH string1 $ 7  ;
   String1='Hello  ';
   length_string1 = lengthc(String1);
   length_trimmed_string = lengthc(TRIMN(String1));
run;
proc print data = string_examples noobs;
run;

Po uruchomieniu powyższego kodu otrzymujemy wyjście, które pokazuje wynik funkcji TRIMN.