SAS: bucle: cómo poner variables en la misma fila en condición de otra variable

usando la función de bucle, me gusta poner variables en diferentes columnas en condición a la otra variable en los datos. Tengo problemas para escribir la instrucción de bucle correcto porque las variables de reubicación siguen yendo a la siguiente fila. ¿Alguien puede señalar lo que no entendí? Quiero que mis variables estén así: ft @10 m1 @30 m2 @31 m3 @32 m4 @34 o2 @35 o5 @36

datos fttryone;

entrada pies m1 o2 m3 m4 o5;

líneas de datos;

1 2 3 4 5 6

2 7 8 9 1 1

3 1 3 4 5 2

4 6 7 8 9 2

;

correr

datos nulo;

establecer fttryone;

archivo 'C:\fttry18.txt';

poner @ 10 pies

   @30 M1 

   @31 M3 

   @32 M4 

doi=0 a 4;

j=i*2;

si ft=i entonces

poner @35+j o2

poner @36+j o5;

correr

preguntado el 09 de marzo de 12 a las 15:03

¿Puede aclarar en qué se diferencia esta pregunta de la que hizo ayer? Y por favor formatee su código. -

Actualicé mi respuesta en su otra pregunta "SAS: reorganización de la posición de la columna" ... ¿ha intentado usar un signo @ final para evitar una nueva línea? -

1 Respuestas

Tres problemas con tu código:

  1. Para mantener sus variables de "reubicación" (O2 y O3) en la misma fila en su archivo .txt de salida, debe incluir dos signos de ampersand (@@) al final de la línea de código que coloca la variable M4.
  2. No ha cerrado su ciclo DO con una instrucción END.
  3. No necesita "PUT" delante de "@36+j o5;".

Prueba el siguiente código:

data _null_;
    set fttryone;
    file 'C:\fttry18.txt';
    put   @10 ft
          @30 M1
          @31 M
          @32 M4 @@
     ;
     do i=0 to 4;
       if ft=i then do;
          j=i*2;
          put @35+j o2
              @36+j o5;
       end;
    end;
 run;    

respondido 09 mar '12, 21:03

gracias RWill Acabo de ver tu respuesta. ¡Otra forma de resolver este problema que no conocía @@! - user634455

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.