Creare una colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sono un novizio di JMP e ho bisogno di aiuto. Ho un ampio database che traccia i pazienti ospedalizzati per un periodo di 20 anni. Se un paziente ha un "*" nella colonna "365 Mortalità", vorrei mettere un 1 nella colonna "Morte" per ogni volta che il paziente è elencato. Vedi sotto.
Paziente
| 365 Mortalità | Morte |
|---|
| 1 |
| 1 |
| 1 | * | 1 |
| 2 |
|
|
| 2 |
|
|
| 2 |
|
|
| 3 |
| 1 |
| 3 |
| 1 |
| 3 | * | 1 |
| 4 |
|
|
| 4 |
|
|
| 5 |
| 1 |
| 5 | * | 1 |
Creare una colonnaGrazie per tutto il vostro aiuto!
Ri: Creazione di una colonnaE un altro approccio:
dtmort = Data Table ("Mortality");
dtby = dtmort << Riepilogo (Gruppo (: Nome ("Mortalità 365"),: Paziente), Collegamento alla tabella di dati originale (0));
dtby << seleziona dove (: name ("365 Mortality")! = "*");
dtby << cancella le righe;
dtby << New Column ("Death1", Numeric, Continuous, Format ("Best", 9), imposta ciascun valore (1));
dtby << elimina colonne ("365 Mortality");
dtmort << Aggiorna (con (tabella dati (dtby)), colonne corrispondenti (: paziente =: paziente), aggiungi colonne dalla tabella di aggiornamento (: Death1));
chiudi (dtby, nosave);
Creare una colonnaEcco un altro modo per farlo. L'approccio può essere applicato a una formula di colonna (eseguire questo script o incollare il codice all'interno di Formula () in una nuova proprietà formula di colonne):
dt << Nuova colonna ( "Morte" ,
formula ( Se ( Array associativo ( Come lista ( : Paziente << ottenere valori ) , : Nome ( "365 mortalità" ) << ottenere valori ) [ : Paziente []] == "*" , 1 ) )
) ;
In alternativa, se non c'è bisogno di una formula dinamica o se il database è molto grande (le formule complesse possono rallentare le cose), può essere fatto da uno script jsl:
dt << Tabella dei dati corrente () ;
col = ( dt << Nuova colonna ( "Morte" )) ;
Per ogni riga (
Se ( Array associativo ( Come lista ( : Paziente << ottenere valori ) , Colonna ( "365 mortalità" ) << ottenere valori ) [ : Paziente []] == "*" ,
col [] = 1
)
) ;
Creare una colonnaPenso che sia un po 'più complicato di così. jstewart vuole un 1 nella colonna Death se qualsiasi riga paziente ha un *. Ecco un modo per farlo:
dt = tabella dati ( "Mortalità" ) ;
dt << Nuova colonna ( "Death1" , Numerico , Continuo , Formato ( "Migliore" , 9 )) ;
dt1 = ( Dtab = dt << disporre in tabelle (
Mostra il pannello di controllo ( 0 ) ,
Aggiungi tabella ( Tabella delle righe ( Raggruppamento di colonne ( : Paziente , : Nome ( "365 mortalità" ) ) ) )
)) << Inserisci nella tabella dati ;
Dtab << chiudi la finestra ;
per ( io = 1 , io <= nrows ( dt1 ) , io ++,
patient_no = colonna ( dt1 , "Paziente" ) [ io ] ;
pat_rows = dt << ottenere righe dove ( : Paziente == eval ( patient_no )) ;
colonna ( dt , "Death1" ) [ pat_rows ] = 1 ;
) ;
Creare una colonnaQuesto può essere fatto con un'istruzione if, sia attraverso il pannello informazioni colonna o JSL. Ecco un rapido esempio del JSL
dt = tabella dei dati corrente () ;
dt << Nuova colonna ( "Morte" , Formula ( Se ( : Nome ( "365 mortalità" ) == "*" , 1 ) )) ;