Comment ajouter une nouvelle colonne à toutes les tables de donnéesJ'ai une série d'expériences qui produisent un fichier texte de résultats, intitulé avec le nom de l'échantillon.
J'ai un script qui prend le titre de la table de données et remplit une nouvelle colonne "nom de l'échantillon" avec le titre.
dt = current data table();
name = dt << get name;
new column("Sample Name");
column(dt,"Sample Name")[1]=name;<BR />
nr = N Rows( dt );
For( ii = 2, ii <= nr, ii++,
If( is missing(Column( dt, "Sample Name" )[ii]),
Column(dt, "Sample Name" )[ii] = Column( dt, "Sample Name" )[ii - 1]
);
);Les expériences sont menées par dizaines, voire par centaines à la fois. Y a-t-il une adaptation à mon script que je peux mettre en place pour que cela s'exécute sur toutes les tables de données ouvertes afin que je puisse concaténer tous les résultats et continuer à automatiser l'analyse ?
ScriptRe : Comment ajouter une nouvelle colonne à toutes les tables de donnéesMerci pour votre réponse.
J'obtiens une erreur lors de l'exécution de ce script

Re : Comment ajouter une nouvelle colonne à toutes les tables de donnéesVous utilisez probablement une ancienne version de JMP (For Each a été introduit dans JMP16). La solution simple consiste à la remplacer par la boucle For (également corrigé une faute de frappe sur le code):
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
dt_list = Get Data Table List();
For(i = 1, i <= N Items(dt_list), i++,
dt_cur = dt_list[i];
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);
Re : Comment ajouter une nouvelle colonne à toutes les tables de donnéesVoulez-vous ajouter une nouvelle colonne à chacune des tables nommées "Sample Name" et elle ne contiendra que le nom de cette table de données spécifique ?
Names Default To Here(1);
Open("$SAMPLE_DATA/Big Class.jmp"); // open for demo purposes
Open("$SAMPLE_DATA/Big Class Families.jmp"); // open extra table for demo purposes
new_col_name = "Sample Name";
For Each({dt_cur}, Get Data Table List(),
name = dt_cur << get name;
If(!Contains(dt_cur << Get Column Names("String"), new_col_name),
dt_cur << New Column(new_col_name, Character, Nominal, << Set Each Value(name));
);
);

Re : Comment ajouter une nouvelle colonne à toutes les tables de donnéesSi vous avez besoin de chaque nom de table uniquement pour la concaténation, pourquoi ne pas laisser la concaténation faire le travail, elle a une option à cet effet ? Voir l'index ou l'aide des scripts.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Trial1.jmp" );
dt2 = Open( "$SAMPLE_DATA/Trial2.jmp" );
dt << Concatenate(
Output Table( "Result Table with Source" ),
Data Table( "Trial2" ),
Create Source Column
);