JSL résume avec une croix avec un compte zéro<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ok, les pros de JSL. Je veux résumer les données que vous trouverez dans un tableau de contingence. Le diagnostic a 2 éléments, TestRslt a 2 éléments (je sais ce qu'ils sont si cela aide à le diagnostiquer = {"pos", "neg"}). Ce qui suit fonctionne très bien si mon nombre est d'au moins 1 dans chaque cellule du tableau de contingence. Je reçois mon c = [34, 35, 2, 3]. Cependant, si j'ai un zéro dans une cellule, alors je reçois c = [34, 35, 2] quand j’ai vraiment besoin de c = [34, 35, 2, 0] car j’ai besoin de savoir que j’ai un zéro pour un combinaison.
résumer ( traverser = par ( Colonne ( R [ "Diagnostic" ] ) , Colonne ( R [ "TestRslt" ])) ,
c = compter ,
) ;
Re: JSL résume avec une croix avec un compte zéroMerci Mark,
J'ai fini par utiliser la contingence pour extraire les valeurs dont j'avais besoin mais je suis resté catégorique pour l'affichage.
Re: JSL résume avec une croix avec un compte zéroPourquoi ne pas utiliser le Contingence plate-forme, qui obtient le droit? Vous voulez accéder au puissant Cross Tab Box Objet de la boîte d'affichage responsable de la présentation de la table de contingence réelle. Vous pouvez trouver son protocole dans le Aide> Index de script sous Boites de présentation . Je l'ai utilisé à plusieurs reprises comme un «cheval de travail».
En règle générale, commencez toujours par l'objet de niveau de test élevé (contingence) au lieu du code de niveau le plus bas (fonction Summarize ()).
Re: JSL résume avec une croix avec un compte zéroJe vous remercie! J'essaierai cela lorsque j'en aurai l'occasion, puis je serai de retour avec le prochain numéro.
Re: JSL résume avec une croix avec un compte zérochat = Catégorique (
X ( : Diagnostic ) ,
Réponses ( : TestRslt ) ,
Part de réponses ( 0 ) ,
Tableau de partage ( 0 ) ,
Légende ( 0 )
) ;
// Le type de zone d'affichage est mal implémenté / documenté en jsl, mais << GetXML fonctionne souvent ...
xml = rapport ( chat ) [ Gridmulticellbox ( 2 )] << obtenir xml ;
// Extraire les nombres sous forme de liste de chaînes
c = Requête XPath ( xml , "// GridMultiCellBoxItem / text ()" ) ;
// Transforme en matrice
c = matrice ( répéter ( je = 0 ; { je ++; num ( c [ je ] ) } , nitems ( c ))) ;
Re: JSL résume avec une croix avec un compte zéroOk, l'option de piratage est sorti. J'essaie d'améliorer ce que j'ai et je ne peux pas gâcher mes tables de données. Le tableau de contingence est une option. La raison pour laquelle j’essayais d’utiliser un résumé plutôt qu’une plate-forme était parce que le nombre spécifique était essentiel, car j’ai besoin de savoir quel numéro correspond au résultat pos / pos. Si l'ordre des étiquettes est différent dans les colonnes, la cellule pour le pos / pos peut changer. Cependant, je pouvais contrôler cela en définissant l'ordre dans la colonne. Actuellement, plutôt que la plate-forme de contingence, j'utilise la plate-forme catégorique. Alors, quelle serait votre méthode préférée pour capturer les données de la table de fréquences?
Merci d'avance!!!
dt2 = Nouvelle table ( "Un manque" ,
ajouter des lignes ( 12 ) ,
Nouvelle colonne ( "Diagnostic" , personnage ) ,
Nouvelle colonne ( "TestRslt" , personnage )
) ;
Pour chaque rangée (
dt1 : Diagnostic [] = x1 [ Compter ( 1 , 2 , 2 , 5 )] ;
dt2 : Diagnostic [] = x1 [ Compter ( 1 , 2 , 2 , 6 )] ;
dt1 : TestRslt [] = x2 [ Compter ( 1 , 2 , 2 , 3 )] ;
dt2 : TestRslt [] = x2 [ Compter ( 2 , 1 , 2 , 7 )] ;
) ;
Catégorique (
X ( : Diagnostic ) ,
Réponses ( : TestRslt ) ,
Part de réponses ( 0 ) ,
Tableau de partage ( 0 ) ,
Légende ( 0 )
) ;
Re: JSL résume avec une croix avec un compte zéroUne solution consiste à ajouter des lignes factices, une pour chaque combinaison possible, puis à corriger le piratage à la fin avec c = c - 1.
Une autre façon consiste à utiliser la fonction intégrée Contingence plate-forme, par exemple:
// exemple de tables
x1 = { "pos" , "neg" } ; x2 = { "UNE" , "B" } ;
dt1 = Nouvelle table ( "Tous là" , ajouter des lignes ( 12 ) , Nouvelle colonne ( "Diagnostic" , personnage ) , Nouvelle colonne ( "TestRslt" , personnage , ) ) ;
dt2 = Nouvelle table ( "Un manque" , ajouter des lignes ( 12 ) , Nouvelle colonne ( "Diagnostic" , personnage ) , Nouvelle colonne ( "TestRslt" , personnage ) ) ;
Pour chaque rangée (
dt1 : Diagnostic [] = x1 [ Compter ( 1 , 2 , 2 , 5 )] ;
dt2 : Diagnostic [] = x1 [ Compter ( 1 , 2 , 2 , 6 )] ;
dt1 : TestRslt [] = x2 [ Compter ( 1 , 2 , 2 , 3 )] ;
dt2 : TestRslt [] = x2 [ Compter ( 2 , 1 , 2 , 7 )] ;
) ;
// Compter la fréquence de combinaison par Summarize ()
s_compte = Une fonction ( { dt } ,
Tableau de données actuel ( dt ) ;
Résumer ( traverser = par ( Colonne ( "Diagnostic" ) , Colonne ( "TestRslt" ) ) , c = compter , ) ;
c ;
) ;
// Compter la fréquence de combinaison par Contigency ()
c_counts = Une fonction ( { dt } ,
Tableau de données actuel ( dt ) ;
c = ( Contingence (
Y ( : Diagnostic ) ,
X ( : TestRslt ) ,
Tableau de contingence (
Compter ( 1 ) ,
Total % ( 0 ) ,
Col% ( 0 ) ,
Rangée % ( 0 ) ,
Attendu ( 0 ) ,
Déviation ( 0 ) ,
Place du Chi cellulaire ( 0 ) ,
Col Cum ( 0 ) ,
Col Cum% ( 0 ) ,
Row Cum ( 0 ) ,
Row Cum% ( 0 )
) ,
Mosaïque ( 0 ) ,
Des tests ( 0 ) ,
Faire en table de données
) << Fermer la fenêtre ()) << obtenir comme matrice << Fermer la fenêtre () ;
Forme ( c `, 4 , 1 ) ; // juste une refonte pour être comparable ici avec le vecteur de synthèse
) ;
// Compare!
Écrire ( "Continence, tout y est =" , c_counts ( dt1 ) , ", Un manquant =" , c_counts ( dt2 ) , "\! r" , "Résumer, tout y est =" , s_compte ( dt1 ) , ", Un manquant =" , s_compte ( dt2 )) ;