Affectation du nom de colonne (x) en sortie à une matrice?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Dans le cadre d'un script plus long, j'aimerais extraire les noms de colonne d'une table et les lister dans une nouvelle table dans une nouvelle colonne.
J'ai naïvement essayé ce qui suit:
dt = table de données actuelle ();
m = [];
Pour (i = 8, i <= N Col (dt), i ++,
m = m || Nom de la colonne (i);
)
Nouvelle table ("Table", Nouvelle colonne ("En-têtes", caractère, valeurs définies (m)));
Je reçois un message d'erreur "Concaténation pour chaînes ou matrices uniquement" qui a du sens puisque j'essaie de coller un nom dans une matrice.
Quelle est la syntaxe et / ou la fonction appropriée pour que cela fonctionne?
Je vous remercie.
Re: Attribuer un nom de colonne (x) en sortie à une matrice?Utiliser un liste à la place d'un Matrice , puis utilisez le Insérer dans() une fonction.
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)));La boucle For () peut être inefficace pour les tables de données volumineuses. Dans ce cas, une modification de txnelson La solution de peut être mieux. Cette version indexe la liste renvoyée par Get Column Names pour utiliser les éléments de 8 à la fin.
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 )] ) ));
Re: Attribuer un nom de colonne (x) en sortie à une matrice?Salut Jim,
Merci pour votre suggestion élégante.
Bien que votre script saisisse tous les noms de colonne d’un fichier, je voudrais pouvoir sauter les 8 premières colonnes pour ne capturer que les noms des colonnes sur lesquelles je calcule des statistiques.
Merci de votre aide.
Cordialement,
Thierry
Re: Attribuer un nom de colonne (x) en sortie à une matrice?Je crois que cela rend un peu plus simple
Noms par défaut ici (1);
dt = table de données actuelle ();
dt2 = Nouvelle table ("Table", nouvelle colonne ("En-têtes", caractères, valeurs (dt << obtenir les noms de colonnes)));