J'essaie de créer une liste de références de colonnes à utiliser ultérieurement pour créer une table de données empilées.
Lorsque je fais la liste dans une fonction, cela fonctionne parfaitement bien.Cependant, lorsque j'essaie la même chose dans une méthode de classe, cela ne fonctionne pas et affiche le message d'erreur : "Aucune valeur pour Op Assign" (1, 2).
make_col_list = Function({dt,start,end},
Local({lst,col_list},
Try(
Current Data Table(dt);
col_list = {};
lst = dt << Get Column Names;
For(i=start,i<=end,i++,
Insert Into(col_list,lst[i])
);
,
Throw("Error in col_list: "||char(exception_msg))
);
col_list;
);
);Ci-dessus, la fonction que j'utilise dans un script.Cette fonction fonctionne actuellement sans problème.
Lorsque j'essaie une idée similaire à l'intérieur d'une classe, cela ne fonctionnera pas.Voici comment je l'ai défini à l'intérieur de la classe.
col_list = dt << Get Column Names;
show(col_list);
show(col_list[26]);
Try(
For(pv_i=27,pv_i<=696,i++,
show(col_list[pv_i]);
Insert Into(pv_lst,col_list[pv_i]);
);
,
Throw("Error in pv columns: "||Char(exception_msg));
);
Try(
For(zv_i=16,zv_i<=25,zv_i++,
Insert Into(zv_lst,col_list[zv_i]);
);
,
Throw("Error in zv columns: "||Char(exception_msg));
);
Try(
For(wr_i=26,wr_i<=361,wr_i++,
Insert Into(wr_lst,col_list[wr_i]);
);
,
Throw("Error in work columns: "||Char(exception_msg));
);
Try(
For(dr_i=362,dr_i<=696,dr_i++,
Insert Into(dr_lst,col_list[dr_i]);
);
,
Throw("Error in drive columns: "||Char(exception_msg));
);J'ai plusieurs groupes de colonnes que j'essaie de sélectionner et de manipuler.
J'ai d'abord essayé d'utiliser une méthode comme celle-ci:
pv_lst = Column(26::696);
mais n'a pas pu le faire fonctionner non plus.
Toute aide sur la manière de générer correctement une liste ou une collection de références de colonnes serait formidable.
Salut @awsmagala ,
On dirait que vous essayez de faire quelque chose de relativement simple d'une manière très compliquée.Vous pouvez créer une pile de tables avec une liste de numéros de colonne au lieu des noms de colonne explicites.Par exemple, je peux empiler toutes les colonnes numériques dans Car Physical Data (exemple de tableau de données) de la manière habituelle comme ceci :
Data Table( "Car Physical Data" ) << Stack(
columns( :Weight, :Turning Circle, :Displacement, :Horsepower, :Gas Tank Size ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
)
Ou dans l'argument des colonnes, je peux faire ceci :
stack_cols = 4::8;
Data Table( "Car Physical Data" ) << Stack(
columns( stack_cols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" )
);
Si les colonnes que vous souhaitez empiler ne sont pas toutes ensemble, vous pouvez simplement concaténer les morceaux de numéros de colonne ensemble.J'espère que cela aide.
De plus, si vous souhaitez obtenir les noms de colonne réels dans une plage, vous pouvez vraiment raccourcir cette fonction make_col_list en quelque chose comme :
col_names = (dt << Get Column Names)[start::end]