JSL resume con una cruz con una cuenta de cero<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ok, profesionales de JSL. Quiero resumir los datos que encontraría en una tabla de contingencia. El diagnóstico tiene 2 elementos, TestRslt tiene 2 elementos (sé lo que son si eso ayuda, así que Diagnóstico = {"pos", "neg"}). Lo siguiente funciona muy bien si mi conteo es al menos 1 en cada celda de la tabla de contingencia. Obtengo mi c = [34, 35, 2, 3]. Sin embargo, si tengo un cero en una celda, obtengo c = [34, 35, 2] cuando realmente necesito tener c = [34, 35, 2, 0], ya que necesito saber que tengo un cero para un combinación.
resumir ( cruzar = por ( Columna ( R El "Diagnóstico" ] ) , Columna ( R El "TestRslt" ])) ,
do = contar ,
) ;
Re: JSL resume con una cruz con un conteo de ceroGracias mark
Terminé usando la contingencia para extraer los valores que necesitaba pero me quedé con la categoría para la pantalla.
Re: JSL resume con una cruz con un conteo de cero¿Por qué no usar el Contingencia plataforma, que lo hace bien? Quieres acceder a los poderosos. Cuadro de tabulación cruzada Mostrar objeto de caja que es responsable de la presentación de la Tabla de Contingencia real. Puedes encontrar su protocolo en el Ayuda> Índice de Scripting debajo Cajas de visualización . Lo he usado muchas veces como un 'caballo de trabajo'.
En general, siempre comience con el objeto de nivel de prueba alto (Contingencia) en lugar del código de nivel más bajo (función de resumen ()).
Re: JSL resume con una cruz con un conteo de cero¡Gracias! Lo intentaré cuando tenga la oportunidad y luego volveré con el próximo número.
Re: JSL resume con una cruz con un conteo de cerogato = Categórico (
X ( : Diagnóstico ) ,
Respuestas ( : TestRslt ) ,
Compartir De Respuestas ( 0 ) ,
Compartir gráfico ( 0 ) ,
Leyenda ( 0 )
) ;
// El tipo de cuadro de visualización mal implementado / documentado en jsl, pero << GetXML a menudo funciona ...
xml = Informe ( gato ) [ Gridmulticellbox ( 2 )] << obtener xml ;
// Extraxt los números como lista de cadenas.
do = Consulta XPath ( xml , "// GridMultiCellBoxItem / text ()" ) ;
// Hacer en matriz
do = matriz ( repetir ( yo = 0 ; { yo ++; num ( do El yo ] ) } , Nitems ( do ))) ;
Re: JSL resume con una cruz con un conteo de ceroOk, la opción de hackear está fuera. Intentar mejorar lo que tengo y no puedo estar arruinando mis tablas de datos. La tabla de contingencia es una opción. La razón por la que estaba tratando de usar un resumen en lugar de una plataforma fue porque el número específico es crítico, ya que necesito saber qué número va con el resultado pos / pos. Si el orden de las etiquetas es diferente en las columnas, entonces la celda para la pos / pos podría cambiar. Sin embargo, podría controlar eso estableciendo el orden en la columna. Actualmente, en lugar de la plataforma de contingencia utilizo la plataforma categórica. Entonces, ¿cuál sería su método preferido para capturar los datos de la tabla de frecuencias?
¡¡¡Gracias por adelantado!!!
dt2 = Nueva mesa ( "Uno que falta" ,
agregar filas ( 12 ) ,
Nueva Columna ( "Diagnóstico" , personaje ) ,
Nueva Columna ( "TestRslt" , personaje )
) ;
Por cada fila (
dt1 : Diagnóstico [] = x1 El Contar ( 1 , 2 , 2 , 5 )] ;
dt2 : Diagnóstico [] = x1 El Contar ( 1 , 2 , 2 , 6 )] ;
dt1 : TestRslt [] = x2 El Contar ( 1 , 2 , 2 , 3 )] ;
dt2 : TestRslt [] = x2 El Contar ( 2 , 1 , 2 , 7 )] ;
) ;
Categórico (
X ( : Diagnóstico ) ,
Respuestas ( : TestRslt ) ,
Compartir De Respuestas ( 0 ) ,
Compartir gráfico ( 0 ) ,
Leyenda ( 0 )
) ;
Re: JSL resume con una cruz con un conteo de ceroUna forma sería agregar filas ficticias, una para cada combinación posible, y luego corregir el corte al final con c = c - 1.
Otra forma es utilizar el incorporado. Contingencia plataforma, por ejemplo:
// Tablas de ejemplo
x1 = { "pos" , "neg" } ; x2 = { "UNA" , "SEGUNDO" } ;
dt1 = Nueva mesa ( "Todo allí" , agregar filas ( 12 ) , Nueva Columna ( "Diagnóstico" , personaje ) , Nueva Columna ( "TestRslt" , personaje , ) ) ;
dt2 = Nueva mesa ( "Uno que falta" , agregar filas ( 12 ) , Nueva Columna ( "Diagnóstico" , personaje ) , Nueva Columna ( "TestRslt" , personaje ) ) ;
Por cada fila (
dt1 : Diagnóstico [] = x1 El Contar ( 1 , 2 , 2 , 5 )] ;
dt2 : Diagnóstico [] = x1 El Contar ( 1 , 2 , 2 , 6 )] ;
dt1 : TestRslt [] = x2 El Contar ( 1 , 2 , 2 , 3 )] ;
dt2 : TestRslt [] = x2 El Contar ( 2 , 1 , 2 , 7 )] ;
) ;
// Contar la frecuencia de combinación por resumen ()
s_counts = Función ( { dt } ,
Tabla de datos actual ( dt ) ;
Resumir ( cruzar = por ( Columna ( "Diagnóstico" ) , Columna ( "TestRslt" ) ) , do = contar , ) ;
do ;
) ;
// Contar la frecuencia de combinación por Contigency ()
c_counts = Función ( { dt } ,
Tabla de datos actual ( dt ) ;
do = ( Contingencia (
Y ( : Diagnóstico ) ,
X ( : TestRslt ) ,
Mesa de contingencia (
Contar ( 1 ) ,
% Total ( 0 ) ,
Col% ( 0 ) ,
Fila % ( 0 ) ,
Esperado ( 0 ) ,
Desviación ( 0 ) ,
Cell Chi Square ( 0 ) ,
Col Cum ( 0 ) ,
Col Cum% ( 0 ) ,
Fila cum ( 0 ) ,
Fila Cum% ( 0 )
) ,
Parcela de mosaico ( 0 ) ,
Pruebas ( 0 ) ,
Hacer en la tabla de datos
) << Cerrar ventana ()) << obtener como matriz << Cerrar ventana () ;
Forma ( do ` 4 , 1 ) ; // solo una modificación para que sea comparable aquí con el vector de resumen
) ;
// ¡Comparar!
Escribir ( "Continencia, todo allí =" , c_counts ( dt1 ) , ", Falta uno =" , c_counts ( dt2 ) , "\! r" , "Resumir, todo allí =" , s_counts ( dt1 ) , ", Falta uno =" , s_counts ( dt2 )) ;