Sas: como dividir strings por delimitador


Você pode usar a função scan() no SAS para dividir rapidamente uma string com base em um delimitador específico.

O exemplo a seguir mostra como usar esta função na prática.

Exemplo: dividir strings por delimitador em SAS

Vamos supor que temos o seguinte conjunto de dados no SAS:

 /*create dataset*/
data my_data1;
    input name $25.;
    datalines ;
Andy_Lincoln_Bernard
Barry_Michael
Chad_Simpson_Smith
Derrick_Parson_Henry
Eric_Miller
Frank_Giovanni_Goodwill
;
run ;

/*print dataset*/
proc print data =my_data1;

Podemos usar o código a seguir para dividir rapidamente a string do nome em três strings separadas:

 /*create second dataset with name split into three columns*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
run ;

/*view second dataset*/
proc print data =my_data2; 

Observe que a sequência da coluna de nome foi dividida em três novas colunas.

Para nomes para os quais existe apenas um delimitador, o valor na coluna name3 está simplesmente vazio.

Observe que também poderíamos usar a função drop para remover a coluna de nome original do novo conjunto de dados:

 /*create second dataset with name split into three columns, drop original name*/
data my_data2;
set my_data1;
    name1= scan (name, 1 , '_');
    name2= scan (name, 2 , '_');
    name3= scan (name, 3 , '_');
    dropname ;
run ;

/*view second dataset*/
proc print data =my_data2; 

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como normalizar dados no SAS
Como renomear variáveis no SAS
Como remover duplicatas no SAS
Como substituir valores ausentes por zero no SAS

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *