JSL fasst ein Kreuz mit einer Nullzählung zusammen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ok, JSL-Profis. Ich möchte Daten zusammenfassen, die Sie in einer Notfalltabelle finden würden. Diagnose hat 2 Elemente, TestRslt hat 2 Elemente (ich weiß, was sie sind, wenn das so hilft Diagnose = {"pos", "neg"}). Das Folgende funktioniert gut, wenn meine Anzahl in jeder Zelle der Kontingenztabelle mindestens 1 beträgt. Ich bekomme mein c = [34, 35, 2, 3]. Wenn ich jedoch eine Null in einer Zelle habe, dann bekomme ich c = [34, 35, 2], wenn ich wirklich c = [34, 35, 2, 0] brauche, da ich wissen muss, dass ich eine Null für a habe Kombination.
zusammenfassen ( Kreuz = durch ( Säule ( R [ "Diagnose" ] ) . Säule ( R [ "TestRslt" ])) .
c = Anzahl .
) ;
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungDanke Markus,
Am Ende habe ich die Eventualität genutzt, um die benötigten Werte zu extrahieren, blieb aber beim Kategorischen für die Anzeige.
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungWarum nicht die Kontingenz Plattform, die es richtig macht? Sie möchten auf das Mächtige zugreifen Kreuztabulatorfeld Anzeigefeldobjekt, das für die Darstellung der tatsächlichen Kontingenztabelle verantwortlich ist. Das Protokoll finden Sie im Hilfe> Skriptindex unter Anzeigefelder . Ich habe es oft als Arbeitspferd benutzt.
Beginnen Sie im Allgemeinen immer mit dem Objekt mit der höchsten Teststufe (Contingency) anstelle des Codes der untersten Ebene (Funktion Summarize ()).
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungVielen Dank! Ich werde es versuchen, wenn ich eine Chance habe, und dann komme ich mit der nächsten Ausgabe zurück.
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungKatze = Kategorisch (
X ( : Diagnose ) .
Antworten ( : TestRslt ) .
Anteil der Antworten ( 0 ) .
Aktienchart ( 0 ) .
Legende ( 0 )
) ;
// Der Typ des Anzeigefelds wurde in jsl schlecht implementiert / dokumentiert, aber << GetXML funktioniert häufig ...
xml = Bericht ( Katze ) [ Gittermulticellbox ( 2 )] << Holen Sie sich XML ;
// Extrahiere die Zahlen als Liste von Strings
c = XPath-Abfrage ( xml . "// GridMultiCellBoxItem / text ()" ) ;
// In eine Matrix umwandeln
c = Matrix ( wiederholen ( ich = 0 ; { ich ++; num ( c [ ich ] ) } . Nitems ( c ))) ;
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungOk, die Hack-Option ist out. Ich versuche zu verbessern, was ich habe und ich kann meine Datentabellen nicht durcheinander bringen. Die Kontingenztabelle ist eine Option. Der Grund, warum ich versuchte, eine Zusammenfassung anstelle einer Plattform zu verwenden, lag darin, dass die spezifische Anzahl kritisch ist, da ich wissen muss, welche Zahl zum pos / pos-Ergebnis gehört. Wenn die Reihenfolge der Beschriftungen in den Spalten unterschiedlich ist, kann sich die Zelle für pos / pos ändern. Ich konnte dies jedoch durch Festlegen der Reihenfolge in der Spalte steuern. Derzeit verwende ich nicht die Notfallplattform, sondern die kategoriale Plattform. Wie würden Sie also Ihre bevorzugte Methode zur Erfassung der Daten aus der Häufigkeitstabelle wählen?
Danke im Voraus!!!
dt2 = Neue Tabelle ( "Eins fehlt" .
Zeilen hinzufügen ( 12 ) .
Neue Spalte ( "Diagnose" . Charakter ) .
Neue Spalte ( "TestRslt" . Charakter )
) ;
Für jede Reihe (
dt1 : Diagnose [] = x1 [ Anzahl ( 1 . 2 . 2 . 5 )] ;
dt2 : Diagnose [] = x1 [ Anzahl ( 1 . 2 . 2 . 6 )] ;
dt1 : TestRslt [] = x2 [ Anzahl ( 1 . 2 . 2 . 3 )] ;
dt2 : TestRslt [] = x2 [ Anzahl ( 2 . 1 . 2 . 7 )] ;
) ;
Kategorisch (
X ( : Diagnose ) .
Antworten ( : TestRslt ) .
Anteil der Antworten ( 0 ) .
Aktienchart ( 0 ) .
Legende ( 0 )
) ;
Re: JSL-Zusammenfassung mit einem Kreuz mit einer NullzählungEine Möglichkeit wäre, Dummy-Zeilen für jede mögliche Kombination hinzuzufügen und dann den Hack am Ende mit c = c - 1 zu korrigieren.
Eine andere Möglichkeit ist die Verwendung des eingebauten Kontingenz Plattform, zB:
// Beispieltabellen
x1 = { "pos" . "neg" } ; x2 = { "EIN" . "B" } ;
dt1 = Neue Tabelle ( "Alle dort" . Zeilen hinzufügen ( 12 ) . Neue Spalte ( "Diagnose" . Charakter ) . Neue Spalte ( "TestRslt" . Charakter . ) ) ;
dt2 = Neue Tabelle ( "Eins fehlt" . Zeilen hinzufügen ( 12 ) . Neue Spalte ( "Diagnose" . Charakter ) . Neue Spalte ( "TestRslt" . Charakter ) ) ;
Für jede Reihe (
dt1 : Diagnose [] = x1 [ Anzahl ( 1 . 2 . 2 . 5 )] ;
dt2 : Diagnose [] = x1 [ Anzahl ( 1 . 2 . 2 . 6 )] ;
dt1 : TestRslt [] = x2 [ Anzahl ( 1 . 2 . 2 . 3 )] ;
dt2 : TestRslt [] = x2 [ Anzahl ( 2 . 1 . 2 . 7 )] ;
) ;
// Zählhäufigkeit nach Summarize () zählen
s_counts = Funktion ( { dt } .
Aktuelle Datentabelle ( dt ) ;
Zusammenfassen ( Kreuz = durch ( Säule ( "Diagnose" ) . Säule ( "TestRslt" ) ) . c = Anzahl . ) ;
c ;
) ;
// Kombinationshäufigkeit nach Contigency () zählen
c_counts = Funktion ( { dt } .
Aktuelle Datentabelle ( dt ) ;
c = ( Kontingenz (
Y ( : Diagnose ) .
X ( : TestRslt ) .
Kontingenztabelle (
Anzahl ( 1 ) .
Gesamt% ( 0 ) .
Col% ( 0 ) .
Reihe % ( 0 ) .
Erwartet ( 0 ) .
Abweichung ( 0 ) .
Cell Chi Square ( 0 ) .
Col Cum ( 0 ) .
Col Cum% ( 0 ) .
Row Cum ( 0 ) .
Row Cum% ( 0 )
) .
Mosaikplot ( 0 ) .
Tests ( 0 ) .
In Datentabelle machen
) << Fenster schließen ()) << als Matrix erhalten << Fenster schließen () ;
Gestalten ( c `, 4 . 1 ) ; // nur eine Umformung, um hier mit dem Vektor zusammenzufassen
) ;
// Vergleichen Sie!
Schreiben ( "Kontinenz, alles da =" . c_counts ( dt1 ) . ", Eins fehlt =" . c_counts ( dt2 ) . "\! r" . "Zusammenfassen, alles da =" . s_counts ( dt1 ) . ", Eins fehlt =" . s_counts ( dt2 )) ;