Spaltennummer<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo alle,
Wie kann ich die Spaltennummer in einer Tabelle ermitteln?
Wie unten ist die Überschrift 3 die Spalte Nr. 3 in der Tabelle ...
| Kopfzeile 1 | Kopfzeile 2 | Kopfzeile 3 |
|---|
| | |
| | |
Betreff: SpaltennummerEs tut mir leid, aber in diesem Beitrag ging es von schlechten Codierungspraktiken zu schlechteren Codierungspraktiken.Wie das Sprichwort sagt, gibt es mehrere Möglichkeiten, eine Katze zu häuten, und es gibt mehrere Möglichkeiten, Code zu schreiben, um dieselbe Funktion auszuführen.Doch was ist der beste Weg?Generell sollten wir MINDESTENS die drei Hauptfaktoren Geschwindigkeit, Codelänge und Fehleranfälligkeit berücksichtigen.Aus diesem Grund,
number_of_columns = n Artikel ( dt << Spaltennamen abrufen ()) ;
ist wirklich schlechte Programmierung.Was Sie verwenden sollten, ist:
number_of_columns = ncols ( dt ) ;
Das Offensichtliche ist, dass es kürzer, aber auch schneller ist.Ersteres muss eine Liste aller Spaltennamen erstellen und diese dann zählen.Letzterer greift einfach auf die Tabellenvariable zurück.
Nächste, Spalte3 = Spalte ( dt , 3 ) ; sollte niemals verwendet werden.Der erste Grund ist, dass b/c Spalte3 ein schlechter Name ist.Ich werde nicht näher darauf eingehen, warum das so ist, aber Sie können diesen Beitrag zur Klarstellung lesen Was ist in einem Namen? Anti-Patterns zu einem schwierigen Problem .Der zweite Grund liegt in dem zusätzlichen Schritt, den Sie einführen. Warum machen:
Spaltennr = Enthält ( dt << Spaltennamen abrufen () , Spalte ( "Höhe" )) ;
Spalte = Spalte ( dt , Spaltennr ) ;
Wenn Sie einfach:
Spalte = Spalte ( dt , "Höhe" ) ;
Letzteres ist wiederum kürzer und schneller.
Betreff: Spaltennummerschön ... und ja, es funktioniert perfekt, danke
Betreff: SpaltennummerMir gefällt, wohin Sie mit dieser MS gehen.Ich könnte mit einem beginnen
dt = Aktuelle Datentabelle () ;
Und wenn die Frage von llupo0 wäre, wie viele Spalten es gibt, könnte man sie so ändern, dass sie so aussieht:
number_of_columns = n Artikel ( dt << Spaltennamen abrufen ()) ;
Bei letztendlichem Interesse könnte llupo0 dann auf die Spalten nach Nummer verweisen:
Spalte3 = Spalte ( dt , 3 ) ;
value1_column3 = Spalte3 [ 1 ] ;
Betreff: SpaltennummerKönnten Sie uns kurz erklären, warum Sie das wollen? In 99 von 100 Fällen ist dieser Wert nicht vorteilhaft und es gibt eine bessere Codierungsmethode, die implementiert werden sollte.Dies gilt insbesondere, da Sie zum Erhalten dieser Nummer entweder die Spaltenreferenz oder den Spaltennamen kennen müssen, die beide wertvoller sind.
Betreff: SpaltennummerUnten ist ein Ansatz mit Enthält Das macht, was (glaube ich) Sie verlangen:
dt = Offen ( „$SAMPLE_DATA/Big Class.jmp“ ) ;
//Funktioniert!
Spaltennr = Enthält ( dt << Spaltennamen abrufen ( Zeichenfolge ) , "Höhe" ) ;
Spaltennr = Enthält ( dt << Spaltennamen abrufen () , Spalte ( "Höhe" )) ;
Spaltennr = Enthält ( dt << Spaltennamen abrufen () , Ausdruck ( Höhe )) ;
//Funktioniert nicht
Spaltennr = Enthält ( dt << Spaltennamen abrufen () , Höhe ) ;
Betreff: Spaltennummerohne eine Schleife zu verwenden für !!!