Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableBonjour,
J'essaie de concaténer un tas de tables générées de manière itérative par un processus.
Les noms de ces tables commencent tous par le même préfixe.
Je peux facilement concaténer toutes les tables ouvertes mais je n'arrive pas à trouver la syntaxe correcte pour concaténer uniquement ces tables avec un préfixe spécifique et laisser les autres tranquilles.
Aucune suggestion?
Meilleur
Sébastien
//The first script to concatenate only tables with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableCela a fait l'affaire !
Merci beaucoup.
Meilleur,
SébastienRe : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableLa structure de ce qu'est dt a changé, donc le contain doit être remplacé par
contains(uppercase(dt<<GET name=""></GET>
Re : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableInutile de s'excuser! Je n’ai probablement pas été très clair au départ.
Quoi qu'il en soit, nous devons être proches mais la construction du dtLIst ne fonctionne pas. J'ai essayé avec et sans majuscules en vain
Voici le journal de la course :
l'argument doit être un caractère lors de l'accès ou de l'évaluation de 'Uppercase', Bad Argument( dt ), Uppercase/*###*/(dt)
Si proche et pourtant si loin...
Voici mon code actuel
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>
Re : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableJe m'excuse, je pensais que votre problème venait de la création du dtLIst.Le problème est légèrement différent.
Le problème réside dans la fourniture à la plateforme Concatenate des informations appropriées.La structure de l'entrée requise de la plate-forme Concatenate est
Data Table() << concatenate( data table(), data table()…., Append to first table(1) );
Ce que vous transmettez à Concaténer est :
Data Table( "LogP" ) << Concatenate( Data Table( {"Pvalues PBS vs PBS", "Pvalues PBS vs 741039", "Pvalues PBS vs 740410", "Pvalues PBS vs 709966", "Pvalues PBS vs 709878", "Pvalues PBS vs 709573", "Pvalues PBS vs 709547", "Pvalues PBS vs 709544"} ), "Append to first table" )
Le principal problème est que chacun des noms de table de données que vous avez doit être modifié au format Data Table( "...….." )
Cela peut être fait avec deux petits changements.
Tout d’abord, modifiez la structure de votre dtLIst.Vous ne voulez pas seulement le nom de la table de données, mais toute la structure
For( i = 1, i <= N Table(), i++,
dt = data table(i);
if(contains(uppercase(dt),uppercase(c)),
insert into(dtLIst, dt ))
);
Ensuite, l'instruction Concatate devient
data table("LogP")<<CONCATENATE></CONCATENATE>Re : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableSalut Jim,
Merci pour la réponse rapide. J'ai essayé de résoudre votre problème en vain.
Voici le journal que j'obtiens lorsque j'implémente mon script :
dtLIst =>
"{"Pvalues PBS vs PBS", "Pvalues PBS vs 741039", "Pvalues PBS vs 740410", "Pvalues PBS vs 709966", "Pvalues PBS vs 709878", "Pvalues PBS vs 709573", "Pvalues PBS vs 709547" , "Pvalues PBS vs 709544"}
Impossible de localiser la table de données lors de l'accès ou de l'évaluation de 'Data Table', Data Table/*###*/(dtLIst)
à la ligne 19 dans C:\Users\sburel\Ionis\Neurology Research - Documents\Core\Neurotoxicology\Miscellaneous Research Activities\DATABASE ALL CNS DATA\Associated scripts\intermediate and toy scripts\Toy exemple pour concaténer plusieurs tables avec une chaîne spécifique dans nom.jsl "
Si j'utilise la partie suivante du script, voici le journal que j'obtiens pour dxLIst=>
"{DataTable("LogX"), DataTable("LogP"), DataTable("Pvalues PBS vs PBS"), DataTable("Pvalues PBS vs 741039"), DataTable("Pvalues PBS vs 740410"), DataTable("Pvalues PBS vs 709966"), DataTable ("Pvalues PBS vs 709878"), DataTable ("Pvalues PBS vs 709573"), DataTable ("Pvalues PBS vs 709547"), DataTable ("Pvalues PBS vs 709544"), DataTable ("NT191209"). Souris in vivo 7-DGE simple empilée")}"
La deuxième liste est très bien concaténée mais inclut des tables dont je ne veux pas. La première liste (dtLIst) ne contient pas la "Table de données ("xyz").
Je soupçonne que je n'utilise pas la syntaxe appropriée pour demander au script d'évaluer chaque élément de la première liste en tant que table de données.
//This script to concatenate only table with 'Pvalue' in the name fails
//But the dtLIst does shows the correct list of tables BUT list them without the 'data table' prefix.
// as a result, the concatenation step does not interpret them as a list of table
clear log();
Names Default To Here( 1 );
try(data table("LogP")<<CLOSE window=""></CLOSE>Peut-être pourrez-vous voir les erreurs de mon chemin 
Merci
Sébastien
Re : Sélectionnez uniquement les tables qui contiennent une chaîne spécifique dans la table à utiliser comme variableJe ne vois rien de mal en soi... mais vous pourriez avoir un problème de majuscules/minuscules, essayez
If(contains(uppercase(dt), uppercase(c),
insert into(dtLIst, dt )
);