SAS ¿Cómo dividir una observación en varias filas según una cadena?

ianux22

aqui esta mi problema.

Tengo el siguiente conjunto de datos

obs ID      p1  p2  p3  p4  perc
1   120265  .   .   .   25  a t 90%, b r 10%
2   120267  15  15  15  15  c e 80%, a 20%  
3   120269  20  20  20  20  cc  

Quiero normalizarlo de esta manera

obs ID      p1  p2  p3  p4  perc
1   120265  .   .   .   25  a t 90% 
2   120265  .   .   .   25  b r 10%
3   120267  15  15  15  15  c e 80%
4   120267  15  15  15  15  a 20%   
5   120269  20  20  20  20  cc

¡Me alegrará escuchar alguna sugerencia! Puedo perc en varias columnas, ¡pero no tengo idea de cómo normalizar el conjunto de datos! Estaré encantado de recibir algunos consejos.

wp78de

No he codificado en SAS por un tiempo, pero esto parece funcionar bien:

data have;
    length ID $8 p1 $2 p2 $2 p3 $2 p4 $2 list $100;
    infile cards dsd dlm='|' truncover;
    input ID p1 p2 p3 p4 list;
    cards;
120265|.|.|.|25|a t 90%, b r 10%
120267|15|15|15|15|c e 80%, a 20%
120269|20|20|20|20|cc
;

data col2rows;
    set have;
    length perc $10;

    do i=1 by 1 until (perc=' ');
        perc=strip(scan(list, i, ','));

        if perc ne ' ' then
            output;
    end;
run;

data want;
    set col2rows (drop=list i);
run;

Que se imprime como se esperaba:

ingrese la descripción de la imagen aquí

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

¿Cómo dividir una observación en varias observaciones?

¿Cómo dividir una observación en varias subobservaciones?

¿Cómo dividir una cadena en varias columnas según un patrón determinado?

¿Cómo dividir una cadena en varias columnas según un patrón determinado?

¿Cómo puedo dividir una fila en varias filas según el intervalo?

¿Cómo dividir y duplicar filas según la cadena en una columna con python / pandas?

Cómo duplicar filas según el carácter en una cadena de varias columnas

¿Cómo dividir una fila en varias filas según el valor de una columna en Athena (Presto)?

Divida una cadena en varias filas (SAS)

¿Cómo dividir una cadena en filas?

Dividir una sola fila en varias filas según el número de conjuntos en Python

Expandir una fila en varias filas al dividir una cadena

¿Cómo dividir datos en varias filas en pandas con una condición?

Pandas: ¿Cómo dar una identificación única a una cadena cuando aparece en varias filas?

¿Cómo poner una cadena de declaración de varias filas en una variable?

Divida una fila en varias filas según el contenido (cadena) de una columna

Explotar / dividir una fila en varias filas según el valor de la columna

¿Cómo dividir una cadena en filas por número de caracteres en Bigquery?

SQL Server 2014: ¿cómo dividir una cadena con comas en varias filas?

¿Cómo dividir la definición de una cadena larga en varias líneas?

¿Cómo dividir una cadena de texto en Excel según una palabra determinada?

¿Cómo dividir una cadena de texto en Excel según una palabra determinada?

Cómo dividir una cadena de lista según \ n

Dividir una cadena en varias matrices según la longitud (javascript)

¿Cómo dividir una matriz en varias filas en mecanografiado?

¿Cómo puedo dividir una matriz en dos según las sumas de filas en R?

Cómo insertar varias filas en una tabla según un rango de números

R data.table divide una fila en varias filas según los valores de cadena

¿Cómo dividir una secuencia en varias secuencias según ciertos criterios?

TOP Lista

CalienteEtiquetas

Archivo