Creando una columna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Soy un novato de JMP y necesito ayuda. Tengo una gran base de datos que rastrea a pacientes hospitalizados durante un período de 20 años. Si un paciente tiene un "*" en la columna "Mortalidad 365", me gustaría poner un 1 en la columna "Muerte" por cada vez que ese paciente aparezca en la lista. Vea abajo.
Paciente
| 365 Mortalidad | Muerte |
|---|
| 1 |
| 1 |
| 1 | * | 1 |
| 2 |
|
|
| 2 |
|
|
| 2 |
|
|
| 3 |
| 1 |
| 3 |
| 1 |
| 3 | * | 1 |
| 4 |
|
|
| 4 |
|
|
| 5 |
| 1 |
| 5 | * | 1 |
Creando una columna¡Gracias por toda tu ayuda!
Re: Creando una columnaY otro enfoque:
dtmort = Tabla de datos ("Mortalidad");
dtby = dtmort << Resumen (Grupo (: Nombre ("365 Mortalidad"),: Paciente), enlace a la tabla de datos originales (0));
dtby << seleccione where (: name ("365 Mortality")! = "*");
dtby << eliminar filas;
dtby << Nueva Columna ("Death1", Numérico, Continuo, Formato ("Mejor", 9), establezca cada valor (1));
dtby << eliminar columnas ("365 Mortalidad");
dtmort << Update (With (Data Table (dtby)), Match Columns (: Patient =: Patient), Add Columns from Update table (: Death1));
cerrar (dtby, nosave);
Creando una columnaAquí hay otra forma de hacerlo. El enfoque se puede aplicar a una fórmula de columna (ejecute este script o pegue el código dentro de Fórmula () en una nueva propiedad de fórmula de columnas):
dt << Nueva Columna ( "muerte" ,
fórmula ( Si ( Matriz asociativa ( Como lista ( : Paciente << obtener valores ) , : Nombre ( "365 Mortalidad" ) << obtener valores ) [ : Paciente []] == "*" , 1 ) )
) ;
O alternativamente, si no hay necesidad de una fórmula dinámica o si la base de datos es muy grande (las fórmulas complejas pueden ralentizar las cosas), se puede hacer mediante una secuencia de comandos jsl:
dt << Tabla de datos actual () ;
columna = ( dt << Nueva Columna ( "muerte" )) ;
Por cada fila (
Si ( Matriz asociativa ( Como lista ( : Paciente << obtener valores ) , Columna ( "365 Mortalidad" ) << obtener valores ) [ : Paciente []] == "*" ,
columna [] = 1
)
) ;
Creando una columnaCreo que es un poco más complicado que eso. jstewart quiere un 1 en la columna Muerte si alguna fila de pacientes tiene un *. Aquí hay una forma de hacerlo:
dt = tabla de datos ( "Mortalidad" ) ;
dt << Nueva Columna ( "Muerte1" , Numérico , Continuo , Formato ( "Mejor" , 9 )) ;
dt1 = ( dtab = dt << Tabular (
Mostrar panel de control ( 0 ) ,
Añadir tabla ( Tabla de filas ( Agrupando Columnas ( : Paciente , : Nombre ( "365 Mortalidad" ) ) ) )
)) << Hacer en la tabla de datos ;
dtab << Cerrar ventana ;
para ( yo = 1 , yo <= las filas ( dt1 ) , yo ++,
paciente_no = columna ( dt1 , "Paciente" ) [ yo ] ;
pat_rows = dt << obtener filas donde ( : Paciente == evaluar ( paciente_no )) ;
columna ( dt , "Muerte1" ) [ pat_rows ] = 1 ;
) ;
Creando una columnaEsto se puede hacer con una instrucción if, ya sea a través del panel de información de la columna o JSL. Aquí es un rápido ejemplo de la JSL
dt = tabla de datos actual () ;
dt << Nueva Columna ( "Muerte" , Fórmula ( Si ( : Nombre ( "365 Mortalidad" ) == "*" , 1 ) )) ;