Zählspalten in jsl zählenIch habe eine Datentabelle mit mehreren Datenspalten mit binären 0/1-Antworten (Zeichen, nominal). Ich möchte eine neue Spalte (numerisch, fortlaufend) erstellen, in der ich die Instanzen von "1" in diesen Spalten zähle.
Kann mir jemand helfen, ein Skript zum Erstellen dieser Spalte zu erstellen? Ich denke, das sollte einfach sein, aber ich stoße auf Straßensperren. Muss ich meine Zeichenspalten in numerische / fortlaufende Spalten konvertieren und eine Summationsformel erstellen?Vielen Dank!
Beispieltabelle
| Infektion (Charakter, nominal) | Blutgerinnsel (Charakter, nominal) | Chirurgie (Charakter, nominal) | NEUE SPALTE: Anzahl der Komplikationen (numerisch, kontinuierlich) |
| 0 | 1 | 1 | 2 |
1 | 1 | 1 | 3 |
| 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
SkriptingBetreff: Zeichenspalten in jsl zählenEine Formel ist alles was Sie brauchen.

Hier ist das Ergebnis.

Betreff: Zeichenspalten in jsl zählen@markbailey lieferte eine gute Lösung
Hier ist eine andere Möglichkeit, das Problem zu lösen
Names Default To Here( 1 );
dt = Current Data Table();
charNames = dt << get column names( character );
// convert char columns to numeric
For( i = 1, i <= N Items( charNames ), i++,
Column( dt, charNames[i] ) << data type( numeric )
);
// Create the jsl required to sum all of the specified columns
theExpr = "dt << new column(\!"number of complications\!", formula(sum(" ||
Substr( Char( charnames ), 2, Length( Char( charNames ) ) - 2 ) || "));";
// Execute the line of code created
Eval( Parse() );
// Delete the formula leaving the static values
Column( dt, "number of complications" ) << delete formula;
// Convert the binary columns back to character
For( i = 1, i <= N Items( charNames ), i++,
Column( dt, charNames[i] ) << data type( character )
);Betreff: Zeichenspalten in jsl zählenDanke an beide @markbailey und @ txnelson für zwei Ansätze für mein Problem. Ich werde mit dem Skript fortfahren, da ich versuche, ein vollständiges Skript für die Erstellung meiner Datentabelle zu erstellen, das in Zukunft wieder verwendet werden soll.
Danke!