Zuweisung der Spaltennamen (x) zu einer Matrix?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Als Teil eines längeren Skripts möchte ich die Spaltennamen aus einer Tabelle extrahieren und diese in einer neuen Tabelle in einer neuen Spalte auflisten.
Ich habe naiv folgendes ausprobiert:
dt = Aktuelle Datentabelle ();
m = [];
Für (i = 8, i <= N Col (dt), i ++,
m = m || Spaltenname (i);
);
Neue Tabelle ("Tabelle", Neue Spalte ("Kopfzeilen", Zeichen, Werte setzen (m)));
Ich erhalte die Fehlermeldung "Verketten für Strings oder Matrizen", die sinnvoll ist, da ich versuche, einen Namen in eine Matrix einzugeben.
Was ist die richtige Syntax und / oder Funktion, damit dies funktioniert?
Vielen Dank.
Betreff: Zuweisung der Spaltennamen (x) zu einer Matrix?Verwenden ein Liste stattdessen ein Matrix und dann die Einfügen in() Funktion.
dt = Current Data Table ();m = {};For(i=8,i<= N Col (dt),i++,insert into(m, Column Name ( i )););New Table ("Table", New Column ("Headers", character,set values(m)));Die For () - Schleife ist für große Datentabellen möglicherweise ineffizient. In diesem Fall eine Änderung von txnelson Die Lösung könnte besser sein. Diese Version indiziert die von Get Column Names zurückgegebene Liste, um die Elemente von 8 bis zum Ende zu verwenden.
Names Default to Here(1);dt = Current Data Table();dt2 = New Table( "Table", New Column( "Headers", character, values( (dt << get column names)[8 :: N Items( dt << get column names )] ) ));
Betreff: Zuweisung der Spaltennamen (x) zu einer Matrix?Hallo Jim,
Vielen Dank für Ihren eleganten Vorschlag.
Während Ihr Skript alle Spaltennamen aus einer Datei erfasst, möchte ich die ersten 8 Spalten überspringen, um nur die Namen der Spalten zu erfassen, für die ich Statistiken erhalte.
Danke für deine Hilfe.
Mit freundlichen Grüßen,
Thierry
Betreff: Zuweisung der Spaltennamen (x) zu einer Matrix?Ich glaube, das macht es etwas einfacher
Namensvorgabe für Hier (1);
dt = Aktuelle Datentabelle ();
dt2 = Neue Tabelle ("Tabelle", Neue Spalte ("Kopfzeilen", Zeichen, Werte (dt << Spaltennamen erhalten)));