SAS: цикл - как поместить переменные в одной строке в условие для другой переменной - PullRequest
0 голосов
/ 09 марта 2012

используя функцию цикла, мне нравится помещать переменные в разных столбцах в зависимости от другой переменной в данных. У меня проблемы с написанием правильного оператора цикла, потому что переменные перемещения продолжают идти к следующей строке. Может кто-то указать, что я не получил? Я хочу, чтобы мои переменные так: футы @ 10 м1 @ 30 м2 @ 31 м3 @ 32 м4 @ 34 o2 @ 35 o5 @ 36

данные фттриона;

входной фут м1 о2 м3 м4 о5;

линиям передачи данных;

1 2 3 4 5 6

2 7 8 9 1 1

3 1 3 4 5 2

4 6 7 8 9 2

;

пробег;

данные ноль ;

набор фттриона;

файл 'C: \ fttry18.txt';

положить @ 10 футов

   @30 M1 

   @31 M3 

   @32 M4 

do i = от 0 до 4;

J = I * 2 *; * тысяча тридцать-четырь

если ft = i, то

положить @ 35 + j o2

положить @ 36 + j o5;

пробег;

1 Ответ

3 голосов
/ 10 марта 2012

Три проблемы с вашим кодом:

  1. Чтобы ваши переменные «перемещения» (O2 и O3) находились в одной и той же строке в выходном файле .txt, вам необходимо добавить два знака амперсанда (@@) в конце строки кода, в которой находится переменная M4.
  2. Вы не закрыли цикл DO с помощью оператора END.
  3. Вам не нужно ставить «PUT» перед «@ 36 + j o5;».

Попробуйте следующий код:

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;    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...