Thursday 9 November 2017

Sas Gleitenden Durchschnitt Ucla


Im ein SAS Anfänger und Im neugierig, wenn die folgende Aufgabe viel einfacher getan werden kann, wie es gegenwärtig in meinem Kopf ist. Ich habe die folgenden (vereinfachten) Metadaten in einer Tabelle namens userdatemoney: Benutzer - Datum - Geld mit verschiedenen Benutzern und Daten für jeden Kalendertag (für die letzten 4 Jahre). Die Daten werden von User ASC und Date ASC geordnet, Beispieldaten sieht so aus: Ich möchte nun einen fünftägigen gleitenden Durchschnitt für das Geld berechnen. Ich begann mit der beliebten apprach mit der Funktion lag () wie folgt: Das Problem mit dieser Methode tritt auf, wenn der Datenschritt in einen neuen Benutzer läuft. Aron würde einige verzögerte Werte von Anna bekommen, was natürlich nicht passieren sollte. Nun meine Frage: Ich bin ziemlich sicher, dass Sie den Benutzer wechseln können, indem Sie einige zusätzliche Felder wie laggeduser und durch Rücksetzen der N, Summe und Mean-Variablen, wenn Sie einen solchen Schalter bemerken, aber: Kann dies in einer einfacheren Weise getan werden Vielleicht mit dem BY-Klausel in irgendeiner Weise Vielen Dank für Ihre Ideen und Hilfe Ich denke, der einfachste Weg ist, um PROC EXPAND verwenden: Und wie in Johns Kommentar erwähnt, ist es wichtig, über fehlende Werte (und auch über Anfang und Ende Beobachtungen) zu erinnern. Ive hinzugefügt SETMISS-Option, um den Code, da Sie klar, dass Sie zerofy fehlende Werte wollen, ignorieren sie (Standard-MOVAVE-Verhalten). Und wenn Sie die ersten 4 Beobachtungen für jeden Benutzer ausschließen möchten (da sie nicht genug Vorgeschichte haben, um den gleitenden Durchschnitt 5 zu berechnen), können Sie die Option TRIMLEFT 4 innerhalb von TRANSFORMOUT () verwenden. Beantwortet Dec 3 13 um 15: 29Willkommen für das Institut für digitale Forschung und Bildung SAS-Learning-Modul Zusammenfassen über Beobachtungen in SAS Hier zeigen wir, wie man Daten über Beobachtungen mit Proc-Mittel zu kollabieren. Unser Beispiel verwendet einen hypothetischen Datensatz mit Informationen über Kinder in drei Familien. Diese Beispiele zeigen, wie Sie über Kinder zusammenbrechen können, um Familienakten aus den Kinderakten zu bilden. 1. Lesen der Datendatei Hier ist das SAS-Programm, das eine Datendatei mit dem Namen kids erstellt. Es enthält drei Familien (famid) mit jeweils drei Kindern. Es enthält die Familien-ID, den Namen des Kindes, die Geburtsordnung (1 2 3 für 1., 2., 3.) sowie Alter, Gewicht und Geschlecht eines jeden Kindes. Hier ist die Ausgabe des Proc-Drucks. 2. Mit Proc-Mittel, um Daten über Datensätze kollabieren Wir können Proc-Mittel verwenden, um über Familien zu kollabieren. Das folgende Beispiel berechnet das durchschnittliche Alter eines jeden Kindes in jeder Familie (aufgrund der Klasse famid-Anweisung) und gibt dann die Ergebnisse in eine SAS-Datendatei mit dem Namen fam2 aus. Der Ausgang der Proc-Einrichtung ist unten gezeigt. Und wir verwenden proc print einen Blick auf fam2. Und diese Ausgabe zeigt, dass die Datendatei fam2 den Durchschnitt des Alters für die Kinder für jede Familie enthält. Allerdings gibt es einen zusätzlichen Datensatz (der unten gezeigte). Dies ist die insgesamt Mittel (beachten Sie, dass die FREQ für sie 9 ist, und es gibt insgesamt neun Kinder). Wir wollen wirklich nicht diese Aufzeichnung. Wir können die Erstellung des Datensatzes mit dem Gesamtmittel mit der nway-Option auf der Proc-Anweisung unterdrücken. Wenn Sie proc mit der class-Anweisung verwenden und eine Ausgabedatei erstellen, sollten Sie normalerweise die nway-Option wie unten gezeigt verwenden. Wir weglassen die proc-Mittel Ausgabe Nun hatte die Datei fam3 nur drei Datensätze mit dem durchschnittlichen Alter für jede Familie. 3. Explizite Benennung der kollabierten Variablen Die folgende Prozedur bedeutet Beispiel genau das gleiche wie das vorherige Beispiel, außer dass der Durchschnitt des Alters explizit benannt ist, ruft es avgage. Wir weglassen die Proc-Mittel-Ausgang Die Ausgabe ist die gleiche wie vorher, außer dass der Durchschnitt des Alters ist avgage. Der Rest der Beispiele wird explizit die kollabierten Variablen (z. B. use meanavgage statt nur mean) benennen. Im Allgemeinen ist es besser, die Variablen explizit zu benennen, um Verwechslungen zwischen der ursprünglichen Variablen und der kollabierten Variablen zu vermeiden. 4. Ermitteln von mehr als einer Variablen Wir können Mittelwerte für mehrere Variablen anfordern. Hier erhalten wir den Durchschnitt für das Alter und für wt alle im selben Befehl. Wie Sie in der Ausgabe unten sehen, ist Avgage das Durchschnittsalter und avgwt ist das durchschnittliche Gewicht der Kinder in jeder Familie. 5. Mehrere Statistiken auf einmal anfordern Wir können mehrere Statistiken auf einmal anfordern. Der folgende Befehl erhält den Mittelwert, die Standardabweichung und das Alter (Mittelwert std und N) für Alter und Gewicht innerhalb jeder Familie. Die Ergebnisse unten zeigen die Ausgabe der Proc-Mittel. Die folgenden Ergebnisse entsprechen den oben genannten Prozeduren. Sie können sehen, dass das Durchschnittsalter und wt von Familie sind in Avgage und Avgwt. Ebenso enthalten stdwd und stdwt die Standardabweichung des Alters und der wt für jede Familie, und nage und nwt haben die gültige Anzahl von Beobachtungen für Alter und wt für jede Familie. 6. Unterdrückung von proc bedeutet Ausgabe In unserem Beispiel haben wir nur drei Familien. Für Ihre Daten können Sie Dutzende, Hunderte oder Tausende von Familien (oder was auch immer Gruppierung Sie verwenden). Der Ausgang des Proc-Mittels kann sehr lang werden, so dass Sie die Ausgabe unterdrücken möchten. Sie können dies mit der Option noprint wie unten gezeigt tun. Die Ausgabe von den Proc-Mitteln wird aufgrund der Option noprint nicht gedruckt. 7. Zählen der Anzahl der Jungen und Mädchen in der Familie Angenommen, Sie wollten eine Anzahl der Jungen und Mädchen in der Familie. Wir können das mit einem zusätzlichen Schritt tun. Wir machen eine Dummy-Variable, die 1 ist, wenn ein Junge (0 wenn nicht) und eine Dummy-Variable, die 1 ist, wenn ein Mädchen (und 0, wenn nicht). Die Summe der Jungen Dummy-Variable innerhalb einer Familie ist die Anzahl der Jungen in der Familie und die Summe der Mädchen Dummy-Variable innerhalb einer Familie ist die Zahl der Mädchen in der Familie. Zunächst verwenden wir einen Datenschritt, um den Jungen und Mädchen Dummy variabel zu machen. Wir verwenden proc print, um die Jungen - und Mädchenvariablen zu betrachten, um sie zu überprüfen. Wir verwenden proc Mittel, um die Jungen - und Mädchenpuppevariablen für jede Familie zusammenzufassen und eine Datendatei zu schaffen, die fam8 genannt wird, das die Summe des Jungen in den Jungen und die Summe des Mädchens in den Mädchen enthält. Wir verwenden die Option noprint, um die Ausgabe der Proc-Mittel zu unterdrücken. Wir machen einen Proc-Druck, um die Ausgabedatei anzusehen. Wie wir erwarten, zeigt die proc print, dass Jungen die Anzahl der Jungen in jeder Familie und Mädchen enthält die Anzahl der Mädchen in jeder Familie enthält. 8. Zusammenführen der kollabierten Daten mit den Originaldaten Manchmal möchten Sie die zusammengefassten Daten mit den Originaldaten wieder zusammenführen. Lets verwenden ein Beispiel erstellen Avgage und avgwt für jede Familie, dann fusionieren diese Ergebnisse wieder mit den ursprünglichen Kids-Daten. Zuerst lassen wir die Daten über Familien zusammenfalten, um Avgage und avgwt zu bilden, gerade wie wir vorher getan haben. Zweitens, wir sortieren Kinder und sortieren fam9 auf famid. Vorbereitung für die Verschmelzung sie zusammen. Drittens, wir fusionieren die sortierten Dateien zusammen (skids und sfam9) von famid. Wir können Typ und freq fallen, da sie nicht benötigt werden, aber wir müssen sie nicht fallen lassen. Wir können ausdrucken, die Ergebnisse, zeigt, dass die Variablen Avgage und Avgwt jetzt wieder zusammen mit den ursprünglichen Kindern, so dass jedes Kind hat das damit verbundene durchschnittliche Alter und Gewicht für ihre Familie. 9. Probleme zu achten Sie können am Ende mit Datensätzen, die Sie nicht erwartet haben, wenn Sie die nway-Option zu vergessen. Wenn Sie über Datensätze kollabieren und dann mit den ursprünglichen Daten wieder auftauchen, müssen Sie die Variablen explizit benennen, wenn Sie sie kollabieren. Wenn Sie nicht, die Variablen aus den kollabierten Daten haben die gleichen Namen wie die ursprünglichen Daten, und sie werden zusammenstoßen, wenn Sie die Daten erneut aufrufen. 10. Weitere Informationen Weitere Informationen zum Zusammenführen von Datendateien finden Sie im SAS Learning Module unter Match Merging Data Files in SAS. Der Inhalt dieser Website sollte nicht als eine Bestätigung irgendeiner bestimmten Website, eines Buches oder Softwareprodukts durch die Universität von Kalifornien ausgelegt werden. Der Beispielcode auf der Registerkarte Voller Code veranschaulicht, wie der gleitende Durchschnitt einer Variablen durch ein berechnet wird Gesamten Datensatz, über die letzten N Beobachtungen in einem Datensatz oder über die letzten N Beobachtungen innerhalb einer BY-Gruppe. Diese Beispieldateien und Codebeispiele werden von SAS Institute Inc. bereitgestellt, und zwar ohne Gewährleistung jeglicher Art, entweder ausdrücklich oder implizit, einschließlich aber nicht beschränkt auf die implizierten Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Die Empfänger erkennen an und stimmen zu, dass SAS Institute nicht für irgendwelche Schäden haftbar ist, die sich aus ihrer Verwendung dieses Materials ergeben. Darüber hinaus bietet das SAS Institute keine Unterstützung für die hierin enthaltenen Materialien. Diese Beispieldateien und Codebeispiele werden von SAS Institute Inc. bereitgestellt, und zwar ohne Gewährleistung jeglicher Art, entweder ausdrücklich oder implizit, einschließlich aber nicht beschränkt auf die implizierten Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck. Die Empfänger erkennen an und stimmen zu, dass SAS Institute nicht für irgendwelche Schäden haftbar ist, die sich aus ihrer Verwendung dieses Materials ergeben. Darüber hinaus bietet das SAS Institute keine Unterstützung für die hierin enthaltenen Materialien. Berechnen Sie den gleitenden Durchschnitt einer Variablen über einen ganzen Datensatz, über die letzten N Beobachtungen in einem Datensatz oder über die letzten N Beobachtungen innerhalb einer BY-Gruppe.

No comments:

Post a Comment