(2) Grundlegende Syntax von SAS

1. Aussage

  • Die Grundeinheit der SAS-Sprache ist eine Anweisung, und mehrere SAS-Anweisungen bilden ein SAS-Programm (*.SAS);

    • Libname mylib "c:\sasdata";
  • Eine Anweisung besteht normalerweise aus einem Schlüsselwort, einem SAS-Namen, Sonderzeichen, Operatoren usw.;

  • Eine Anweisung beginnt im Allgemeinen mit einem SAS-Schlüsselwort und endet mit einem Semikolon „;“;

  • Das Schlüsselwort wird vom SAS-System definiert und hat eine bestimmte Bedeutung. Es wird im Allgemeinen am Anfang eines Satzes platziert, um die Art und Funktion des Satzes zu beschreiben.

Verfahren zum Schreiben von SAS-Anweisungen:

  1. Eine Anweisung kann an einer beliebigen Stelle in einer Zeile beginnen;

  2. Eine Anweisung kann in mehreren Zeilen verfasst sein;

  3. Mehrere Anweisungen können in einer Zeile geschrieben werden;

  4. Groß- und Kleinschreibung wird nicht beachtet;

  5. Es gibt zwei Formate für Kommentaranweisungen:

    • /* Inhalt notieren */

    • * Inhalt beachten;

Mit Ausnahme von Datenzeilen beginnen SAS-Anweisungen mit Schlüsselwörtern.

Die Run-Anweisung gibt das Ende des Programms an, und nach jedem Programm kann auch ein Lauf hinzugefügt werden.

title '2015 student';
libname mylib 'F:\sasdata';
data mylib.stud;
     input id $ name $ gender $ age hometown $;
cards;
201501001 周国兴 男 19 长沙
201501002 李铭   女 18 广西壮族自治区
201502003 彭晓钢  男 19 广州
201502004 胡大伟  男  18 武汉
;;;;
proc print data=mylib.stud;
run; 

2. Die Zusammensetzung des Programms

Datenschritt :

  • Ein Datenschritt beginnt mit dem Schlüsselwort DATA;

  • Es wird normalerweise zum Erstellen von SAS-Datensätzen und zum Verarbeiten von Daten wie Berechnung und Auswahl verwendet.

  • Die Ausgabe des Datenschritts kann in verschiedenen Formen erfolgen, beispielsweise als SAS-Datensätze oder Berichte, und die Ergebnisse können auch in das Protokollfenster oder externe Dateien geschrieben werden

Prozessschritt :

  • Ein Verfahrensschritt beginnt mit dem Schlüsselwort PROC;

  • Es wird normalerweise zum Analysieren und Verarbeiten von Daten in SAS-Datensätzen, zum Zeichnen von Tabellen und Diagrammen sowie zum Anzeigen von Informationen zu Datensätzen verwendet.

Vollständige Aussage :

  • außerhalb des Datenschritts und Verfahrensschritts;

  • Beispiel: Die TITLE-Anweisung wird verwendet, um den Titel anzugeben; die OPTION-Anweisung wird verwendet, um einige Optionen für den Systembetrieb anzugeben

  1. Ein SAS-Programm besteht aus null oder mehreren Datenschritten und Prozessschritten;

  2. Manchmal enthält es auch einige globale Anweisungen zur Ausführung bestimmter Optionen, Variablen oder Programmlaufumgebungen, die das gesamte SAS-Programm steuern.

  3. SAS-Programm-Endanweisung: RUN ;

  4. Führen Sie das Programm aus: Klicken Sie auf die Schaltfläche „Senden“ in der Symbolleiste oder klicken Sie auf F8

3. SAS-Datenschritt

3.1 Erstellen Sie einen Datensatz mit dem Schritt DATA

Methode 1: Direkte Eingabemethode

DATA<数据集名>;
INPUT<变量1>[$] <变量1>[$] <变量2>[$] ...<变量k>[$];
[其他数据步语句]
CARDS;
d11 d12 ... d1k
d21 d22 ... d2k
... ...
[;]
RUN;
  1. DATA-Anweisung

    • [Format] Name der Logikbibliothek. Name des Datensatzes;

    • [Funktion] Markieren Sie den Anfang des Datenschritts und legen Sie den Namen des neuen Datensatzes fest

  2. INPUT-Anweisung

    • [Funktion] Definieren Sie Variablen für die entsprechenden Daten und teilen Sie SAS mit, wie die Daten gelesen werden sollen

  3. CARDS-Anweisung

    • [Funktion] Die Datenleitung liegt hinter der Oberfläche;

    • Karten müssen in Verbindung mit der Eingabe verwendet werden;

    • In einem Datenschritt kann nur eine Karte verwendet werden;

    • Semikolon belegt eine Zeile für sich

Methode 2: Den Datensatz aus einer externen Datei lesen

DATA <数据集名>;
INFILE '<文件名>';
INPUT <变量名1> <变量名2> ... <变量名k>;
RUN;
  1. Die INFIILE-Anweisung wird zum Lesen von Daten aus einer externen Datei verwendet und muss vor der INPUT-Anweisung stehen;

  2. Der Dateiname enthält Laufwerksbuchstaben und Pfad;

  3. Die Datei enthält keine Variablennamen

data  temp2;
infile 'F:\sasdata\stud.txt';
input id $ name $ sex $ age hometown $;
run;

3.2 Eingabeanweisung

Anweisungsformat: Eingabeformat für INPUT-Variablennamen;

Funktion:

  • Variablen definieren

  • Lesen Sie die Daten in der externen Datendatei und lesen Sie die Daten nach der CARDS-Anweisung

Input state $ 1-2 amount 4-8;
Input state $ amounnt @@;(行固定标识符))
  • Werte in einer Datenzeile werden durch mindestens ein Leerzeichen getrennt;

  • Fehlende Werte werden durch „.“ dargestellt;

  • Listen Sie die Variablen in der Reihenfolge auf, in der ihre Werte in der Eingabeanweisung erscheinen.

  • mit einem Semikolon enden;

  • Auf Zeichenvariablennamen folgt das $-Zeichen

3.3 SET-Anweisung

Funktion:

  1. Vervielfältigung und Änderung von Datensätzen;

  2. Teilen Sie den Datensatz auf.

  3. Datensätze vertikal zusammenführen

DATA[<新数据集名1>][<新数据集名2>]....;
SET[<已有数据集名1>][<已有数据集2>]....;
[KEEP <欲保持的变量名列表>;]
[DROP<欲丢弃的变量名列表>;]
[IF <条件>[THEN<语句>];]
RUN;

Funktion 1: Replikation und Änderung von Datensätzen

DATA[<新数据集名1>];
SET[<已有数据集名1>];
data class1;
 set sashelp.class;
 keep name sex age;/*字符变量后不要带$*/
 if sex="女";
run;

Funktion 2: Datensatz teilen

DATA[<新数据集名1>][<新数据集名2>];
SET[<已有数据集名1>];
data boy girl;
   set sashelp.class;
   if sex=‘M' then output boy;
   if sex=‘F' then output girl;
run;

Funktion 3: Datensätze vertikal zusammenführen

DATA[<新数据集名1>];
SET[<已有数据集名1>][<已有数据集2>];

3.4 MERGE-Anweisung

Datensätze horizontal zusammenführen:

Verwenden Sie die Merge-Anweisung, um Beobachtungen in zwei oder mehr SAS-Datensätzen horizontal zu einer Beobachtung in einem neuen Datensatz abzugleichen.

DATA <新数据集名>;
MERGE <已有数据集列表>;
BY <变量1>[<变量2>...];
RUN;

Verwenden Sie die by-Anweisung, um passende Variablen anzugeben, nach denen jeder Datensatz sortiert werden muss.

3.5 IF-Anweisung

Funktion: Nur Beobachtungen verarbeiten, die die Bedingungen erfüllen

Format 1: IF <Bedingung oder Ausdruck> THEN <Anweisung>; 
                       [ELSE <Anweisung>]; 
Format 2: IF <Bedingung oder Ausdruck>;

4. Prozessschritt

Gängige Prozessschritte: Prozessschritte Drucken, Mittel, Sortieren, Formatieren, Inhalt

Häufig verwendete Prozessschrittanweisungen: Var, By, class, Output, Where, Label, Format

PROC <过程名>[DATA = <输入数据集>][<选项>];
    <过程语句>/<选项>;
    <过程语句>/<选项>;
RUN;

4.1 VAR-Anweisung

Die VAR-Anweisung wird in vielen Prozeduren zur Angabe von Analysevariablen verwendet

VAR<变量名1><变量名2>...<变量名n>;
Proc print data=sashelp.class;
    Var name age height;
Run;
  • Die Variablenliste enthält einige der Variablen im Datensatz, die von der Prozedur analysiert werden.

  • Die Reihenfolge der Variablen in der VAR-Anweisung ist auch die Reihenfolge der Variablen bei der Ausgabe zukünftiger Ergebnisse.

  • Normalerweise steht die VAR-Anweisung am Anfang der Prozedur.

4.2 CLASS-Anweisung

Die CLASS-Anweisung kann in einigen SAS-Prozeduren verwendet werden, um einige Klassifizierungsvariablen anzugeben, und die SAS-Prozedur analysiert und verarbeitet entsprechend unterschiedlichen Werten der Klassifizierungsvariablen.

按男女分类统计class数据集中收入weight的均值等统计量:
Proc Means Data=sashelp.class;
    Class Sex;
    Var weight;
    Title "How to use Class statement";
Run;

4.3 BY-Anweisung

Die BY-Anweisung wird im Allgemeinen verwendet, um eine oder mehrere kategoriale Variablen im Prozess anzugeben, die Beobachtungen entsprechend den Werten dieser kategorialen Variablen zu gruppieren und dann die in diesem Prozess angegebene Analyse für jede Gruppe von Beobachtungen durchzuführen

BY <变量名1><变量名2>...;

4.4 LABEL-Anweisung

LABEL<变量名>='<标签>' <变量名>='<标签>'...;

5. Der ganze Satz

Die gesamte Anweisung unterscheidet sich von der allgemeinen Anweisung, und die allgemeine Anweisung muss im Datenschritt oder Prozessschritt als Teil des Datenschritts oder Prozessschritts verwendet werden.

Die gesamte Anweisung kann nicht nur im Datenschritt und Prozessschritt verwendet werden, sondern kann auch allein verwendet werden (außerhalb des Datenschritts und Prozessschritts).

-libname

-Titel

-Fußnote

-Optionen

Ich denke du magst

Origin blog.csdn.net/beiye_/article/details/130630485
Empfohlen
Rangfolge