2016-07-14 6 views
0

Ich arbeite an einem Stück Code, um ein Array von Daten zu nehmen und dann ein Array aller Daten innerhalb eines bestimmten Puffers der Daten innerhalb des ursprünglichen Datumsvektors zu setzen.SAS: Kontinuierliches Hinzufügen von Beobachtungen in einer do-Schleife

Mein Plan ist es, 2 verschachtelte do-Schleifen zu verwenden, um das ursprüngliche Datenfeld durchzulaufen und jedes Mal den Puffer zu addieren/subtrahieren und dann einen Datensatz zu verwenden, um diese beiden Beobachtungen zur ursprünglichen Menge hinzuzufügen.

Ich habe den folgenden Code verwendet, aber ich lande in einer Endlosschleife und SAS stürzt ab.

%let buffer = 3;  
data dates_with_buffer; 
    do i = -1*&buffer. to &buffer.; 
     do j = 1 to 14; 
     set original_dates point = j; 
     output_dates = dates + &buffer.; 
     output; 
     end; 
    end; 
run; 
+1

könnten Sie ein Beispiel für den Eingabedatensatz und die gewünschte Ausgabe bereitstellen. – Altons

Antwort

1

Wenn Sie point= auf einem Set-Anweisung verwenden, müssen Sie auch eine stop Anweisung umfassen eine Endlosschleife zu verhindern. Versuchen Sie Folgendes:

%let buffer = 3;  
data dates_with_buffer; 
    do i = -1*&buffer. to &buffer.; 
     do j = 1 to 14; 
     set original_dates point = j; 
     output_dates = dates + &buffer.; 
     output; 
     end; 
    end; 
    stop; 
run; 
Verwandte Themen