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.
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:
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
Déjame decir algunas palabras