Nueva columna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Tengo una gran base de datos de pacientes hospitalizados por una determinada condición. He estado tratando de hacer una nueva columna para indicar los "años anteriores a la muerte". Vea abajo:
Así es como se ve mi base de datos:
| AÑO | paciente | Mortality_in365days |
|---|
| 1990 | 221 |
|
| 1991 | 221 |
|
| 1991 | 221 |
|
| 1993 | 221 |
|
| 1995 | 221 | * |
| 2000 | 789 |
|
| 2001 | 789 |
|
| 2002 | 789 | * |
| 2001 | 965 |
|
| 2005 | 965 | * |
Esto es lo que estoy tratando de crear:
| AÑO | paciente | Mortality_in365days | Año de la muerte | Años antes de la muerte |
|---|
| 1990 | 221 |
| 1995 | 5 |
| 1991 | 221 |
| 1995 | 4 |
| 1991 | 221 |
| 1995 | 4 |
| 1993 | 221 |
| 1995 | 2 |
| 1995 | 221 | * | 1995 | 0 |
| 2000 | 789 |
| 2002 | 2 |
| 2001 | 789 |
| 2002 | 1 |
| 2002 | 789 | * | 2002 | 0 |
| 2001 | 965 |
| 2005 | 4 |
| 2005 | 965 | * | 2005 | 0 |
Una estrella en la columna death_in365days significa que murieron en los últimos 365 días. Sé que los años anteriores a la muerte no serán un cálculo exacto, ya que dependiendo de cuánto tiempo murieron (30 días versus 365 días) puede significar que murieron el año anterior. Había configurado JMP para hacer la columna del año de la muerte, y luego hacer una fórmula de resta simple para calcular los años antes de la muerte, pero luego tengo problemas. Lo había hecho manualmente usando la función de actualización, ya que todavía no soy muy bueno en las secuencias de comandos. Si puedes ayudarme con instrucciones manuales o con scripting, por favor avísame.
Gracias.
Nueva columnaEl año máximo para cada paciente corresponde obviamente al año de la muerte. Manualmente, puede hacer un resumen con el año máximo agrupado por paciente. Luego actualice la tabla original con el resumen utilizando Paciente como columnas coincidentes en ambas tablas. Finalmente, una simple resta (Año de la muerte - Año) daría la última columna.
Aquí hay una forma ligeramente diferente de hacerlo por script
dt = Tabla de datos ( "base de datos" ) ;
Resumir ( pag = por ( : Paciente ) , maxyear = Max ( : Año ) ) ;
Automóvil club británico = Matriz asociativa ( Evaluar ( pag ) , Como lista ( maxyear ) ) ;
col1 = dt << Nueva Columna ( "Año de la muerte" , numérico ) ;
col2 = dt << Nueva Columna ( "Años antes de la muerte" , numérico ) ;
Por cada fila (
col1 [] = Automóvil club británico El Carbonizarse ( : Paciente [] )] ;
col2 [] = col1 [] - : Año [] ;
) ;
Nueva columnaSaber poco sobre JMP, sin embargo, me parece que un DUL 2X también hará el trabajo:
los datos tienen
tarjetas infile missover;
AÑO ingresado paciente $ Mortality_in365days $;
tarjetas;
1990 221
1991 221
1991 221
1993 221
1995 221 *
2000 789
2001 789
2002 789 *
2001 965
2005 965 *
;
querer datos
hacer hasta (último.paciente);
conjunto tiene
por año del paciente;
Death_year = ifn (last.patient, year, death_year);
retener death_year;
fin;
hacer hasta (último.paciente);
conjunto tiene
por año del paciente;
Years_Before_death = death_year-year;
salida;
fin;
correr;
Proc imprimir; ejecutar;
Saludos,
Haikuo