Eine Spalte erstellen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich bin JMP-Neuling und brauche Hilfe. Ich habe eine große Datenbank, die über einen Zeitraum von 20 Jahren Krankenhauspatienten aufzeichnet. Wenn ein Patient ein "*" in der Spalte "365 Mortality" hat, möchte ich für jedes Mal, wenn der Patient in der Liste steht, eine "1" in der Spalte "Tod" setzen. Siehe unten.
Geduldig
| 365 Sterblichkeit | Tod |
|---|
| 1 |
| 1 |
| 1 | * | 1 |
| 2 |
|
|
| 2 |
|
|
| 2 |
|
|
| 3 |
| 1 |
| 3 |
| 1 |
| 3 | * | 1 |
| 4 |
|
|
| 4 |
|
|
| 5 |
| 1 |
| 5 | * | 1 |
Eine Spalte erstellenVielen Dank für Ihre Hilfe!
Re: Erstellen einer SpalteUnd ein anderer Ansatz:
dtmort = Datentabelle ("Mortalität");
dtby = dtmort << Zusammenfassung (Gruppe (: Name ("365 Mortalität"),: Patient), Link zur ursprünglichen Datentabelle (0));
dtby << select where (: name ("365 Mortality")! = "*");
dtby << Zeilen löschen;
dtby << Neue Spalte ("Death1", Numeric, Continuous, Format ("Best", 9), jeden Wert einstellen (1));
dtby << Spalten löschen ("365 Mortality");
dtmort << Update (mit (Datentabelle (dtby)), Spalten übereinstimmen (: Patient =: Patient), Spalten aus der Aktualisierungstabelle hinzufügen (: Death1));
close (dtby, nosave);
Eine Spalte erstellenHier ist eine andere Möglichkeit, dies zu tun. Der Ansatz kann auf eine Spaltenformel angewendet werden (führen Sie dieses Skript aus oder fügen Sie den Code in Formula () in eine neue Spaltenformeleigenschaft ein):
dt << Neue Spalte ( "Tod" .
Formel ( Ob ( Assoziatives Array ( Als Liste ( : Geduldig << Werte erhalten ) . : Name ( "365 Sterblichkeit" ) << Werte erhalten ) [ : Geduldig []] == "*" . 1 ) )
) ;
Oder alternativ: Wenn keine dynamische Formel benötigt wird oder die Datenbank sehr groß ist (komplexe Formeln können die Dinge verlangsamen), kann dies durch ein jsl-Skript erfolgen:
dt << Aktuelle Datentabelle () ;
col = ( dt << Neue Spalte ( "Tod" )) ;
Für jede Reihe (
Ob ( Assoziatives Array ( Als Liste ( : Geduldig << Werte erhalten ) . Säule ( "365 Sterblichkeit" ) << Werte erhalten ) [ : Geduldig []] == "*" .
col [] = 1
)
) ;
Eine Spalte erstellenIch denke, es ist ein bisschen schwieriger als das. jstewart möchte eine 1 in der Spalte Tod, wenn in einer Patientenreihe ein * steht. Hier ist eine Möglichkeit, dies zu tun:
dt = Datentabelle ( "Mortalität" ) ;
dt << Neue Spalte ( "Death1" . Numerisch . Kontinuierlich . Format ( "Beste" . 9 )) ;
dt1 = ( dtab = dt << Tabellarisch (
Systemsteuerung anzeigen ( 0 ) .
Tabelle hinzufügen ( Row Table ( Spalten gruppieren ( : Geduldig . : Name ( "365 Sterblichkeit" ) ) ) )
)) << In Datentabelle machen ;
dtab << Fenster schließen ;
zum ( ich = 1 . ich <= nrows ( dt1 ) . ich ++
patient_no = Säule ( dt1 . "Geduldig" ) [ ich ] ;
pat_rows = dt << reihen wo ( : Geduldig == eval ( patient_no )) ;
Säule ( dt . "Death1" ) [ pat_rows ] = 1 ;
) ;
Eine Spalte erstellenDies kann mit einer if -Anweisung erfolgen, entweder über den Spalteninformationsbereich oder über JSL. Hier ist ein kurzes Beispiel für die JSL
dt = aktuelle Datentabelle () ;
dt << Neue Spalte ( "Tod" . Formel ( Ob ( : Name ( "365 Sterblichkeit" ) == "*" . 1 ) )) ;