wie man die Anzahl der Spalten in jeder Datenzeile zählt, die unter einen bestimmten Wert fallenWenn ich 4 Spalten in meiner Tabelle habe und pro Zeile herausfinden muss, wie viele Spalten unter 98 % fallen, wie kann ich dafür eine einfache Formel schreiben?
Es gibt einige ähnliche Beiträge, aber sie sind viel komplizierter als ich brauche.
Danke
Erweiterte statistische ModellierungVerbraucher- und MarktforschungDatenmischung und -bereinigungMassenanpassungBetreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Das hilft Diedrich enorm.
Danke
Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Hallo @fionaweston ,
Wie bereits erwähnt, ist hier das Datentabellenmodell, das ich mit dem Counts-Skript erstellt habe. Es zählt nur numerische/kontinuierliche Spalten und ignoriert alle anderen Daten-/Modellierungstypspalten in Ihrer Tabelle.
Hoffe das hilft!,
DS
Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Freut mich zu hören, dass es bei Ihnen funktioniert!Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Danke Diedrich,
Das ist fantastisch!Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Hallo @fionaweston ,
Was erweitern und verallgemeinern @Georg Gepostet, dieses Skript können Sie in jeder Datentabelle speichern und es generiert eine neue Spalte mit den Zählungen. Ich wollte dies hinzufügen, weil Sie erwähnt haben, dass die Datentabelle Hunderte von Spalten haben könnte, und dies kann damit umgehen, ebenso wie wie viele Zeilen Sie auch haben.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Counts", Numeric, Continuous );
test = Function( {val},
If( val < 0.98, 1, 0 )
);
For( r = 1, r <= N Rows(), r++,
count = 0;
ret = 0;
For( col = 1, col <= N Col() - 1, col++,
If( Is Missing( Column( col )[r] ) == 1,
count = 0,
count = test( Column( col )[r] )
);
ret += count;
:Counts[r] = ret;
);
);Klicken Sie einfach auf den Hot-Button neben dem Namen Ihrer Datentabelle und wählen Sie „Neues Skript“ aus. Kopieren Sie dann das Skript von oben und fügen Sie es in das neue Skript ein (und geben Sie ihm natürlich einen Namen) und klicken Sie dann auf den grünen Pfeil, um es auszuführen. Sie können dieses Skript dann kopieren/in jede Datentabelle einfügen – natürlich würden Sie den Vergleichswert in der „Test“-Funktion für den von Ihnen verwendeten Datensatz ändern.
Hoffe das hilft!,
DS
UPDATE: Mir ist aufgefallen, dass in meinem ursprünglichen Beitrag fehlende Werte in einer Spalte nicht berücksichtigt wurden, und ich habe ihn korrigiert, um fehlende Werte zu berücksichtigen.
Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Danke Georg, das funktioniert!
Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Wahrscheinlich könnte diese Formel Folgendes bewirken:
test = Function( {val},
If( val < 0.98, 1, 0 )
);
Sum( test( :A ), test( :B ), test( :C ), test( :D</img> ) );
Betreff: Wie zählt man die Anzahl der Spalten in jeder Datenzeile, die einen bestimmten Wert unterschreiten?Dies ist nur eine Kurzversion. Die echte Tabelle könnte mehr als 100 Spalten haben.