Una duda que planteó una lectora del blog acerca de separar una cadena de caracteres separados por comas y crear observaciones en otra variable:
¡Hola! He buscado por toda la página, necesito ayuda urgente. Mi problema es el siguiente:
Necesito separar una cadena de texto en una fila en varias filas, por ejemplo:
cadena1,cadena2,cadena3en:cadena1cadena2cadena3Para encontrar la
,utilizoscan, aunque podría ocuparanypunctpara que encuentre la primera,, luego la segunda,, etc., y cortar consubstr,length… Pero bueno, ya que tengo un método de separar el texto de la fila, ¿cómo hago para que cada palabra esté en una nueva fila? Ojalá me hayan entendido y me den una idea de cómo hacer eso en unPROC SQL, con unamacroo como sea; ¡solo una pequeña orientación me serviría mucho, gracias!
En realidad, teníamos una entrada que podía haberte servido de referencia:
https://analisisydecision.es/el-debate-politico-o-como-analizar-textos-con-wps/
Con esta idea podemos proponer hacer:
data frase;
frase = "cadena1,cadena2,cadena3";
run;
data palabras;
set frase end = fin;
drop i letra;
length palabra $50;
palabra = "";
do i = 1 to length(frase);
letra = substr(frase, i, 1);
if letra not in (",") then palabra = compress(palabra || letra);
else do;
output;
palabra = "";
end;
end;
if fin then output;
run;
Se trata de ir carácter a carácter y volcarlo a una nueva variable en el momento que encuentra la coma y realizar un output en ese momento. Saludos.