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