Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Highlighted
Occasional Contributor
Beiträge: 12
Wiederholen eines Wertes in Datalines (zur Erstellung von Beispieldatensätzen)

Hallo,

 

zur besseren Verständlichkeit möchte ich einen Beispieldatensatz (für einen anderen Post) generieren. Dieser sollte ca. 1000 DS beinhalten.

 

Jetzt möchte ich nicht jede Zahl einzeln in einem datalines einfügen. Von R kenne ich die Funktion, dass man über rep(value,times) z. B. die Zahl 1 zehn mal wiederholen kann: rep(1,10) = 1,1,1,1,1,1,1,1,1,1

 

Wie kann ich das in SAS realisieren?

 


data rep;
   infile datalines ;
   input var;
   datalines;                      
1
.
. /*1 - Tausend mal wiederholt???*/
.
1
;
Super User
Beiträge: 9.869
Re: Wiederholen eines Wertes in Datalines (zur Erstellung von Beispieldatensätzen)
Posted in reply to SMartin_82
%let n=10;

data rep (drop=i var);
array vars {&n} var1-var&n;
input var;
do i = 1 to &n;
  vars{i} = var;
end;
cards;
1
;
run;
---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
New Contributor
Beiträge: 3
Re: Wiederholen eines Wertes in Datalines (zur Erstellung von Beispieldatensätzen)
Posted in reply to SMartin_82

Hallo,

 

um jede Dataline x-mal zu wiederholen solltest Du folgendes tun:

 

 

%let n=10;

data rep (drop=i);
    input var;
    do i = 1 to &n;
        output;
        end;
    cards;
1
    ;
run;

 

Contributor
Beiträge: 26
Re: Wiederholen eines Wertes in Datalines (zur Erstellung von Beispieldatensätzen)
[ Bearbeitet ]
Posted in reply to SMartin_82

Hallo SMartin_82,
Der Unterschied zum Beispiel von KurtBremser ist, dass hier 10 Zeilen angelegt werden, beim anderen Beispiel 10 Spalten.
Data rep;
  input var;
  do i = 1 to 10
    output;
  end;
  drop i;
  cards;
1
run;
Viele Grüße
Jan