Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuelSalut,
Bonjour, j'ai un doute concernant le script JSL (très nouveau dans ce domaine !)
J'ai deux fichiers de données - Tableau A et Tableau B.
Tableau A :-
Tableau B :-

Je veux ajouter des valeurs de Tableau B Nom de la colonne "Décalage" pour chaque ligne du groupe de colonnes "Tests" dans le tableau A et générer un nouveau fichier de table de données avec des valeurs ajoutées.
PS- Il y a plus de 100 colonnes dans le fichier Table A. Comment puis-je utiliser une boucle for pour itérer toutes les lignes et colonnes ?
Voici ce que j'ai essayé de commencer. Des idées à ce sujet ou un moyen plus efficace de le faire?
</CODE></PRE><PRE class="language-jsl"><CODE>Names Default To Here( 1 );
dt = Data Table( "Table A" );
dtOffset = Data Table( "Table B" );
For Each Row(
dt:Current = dt:Current + dtOffset:Offset[1];
dt:Voltage = dt:Voltage + dtOffset:Offset[2];
dt:Resistance = dt:Resistance + dtOffset:Offset[3];
dt:Inductance = dt:Inductance + dtOffset:Offset[4];
dt:Capacitance = dt:Capacitance + dtOffset:Offset[5];
dt:Power = dt:Power + dtOffset:Offset[6];
dt:Temperature = dt:Temperature + dtOffset:Offset[7];
dt:Humidity = dt:Humidity + dtOffset:Offset[8];
dt:Pressure = dt:Pressure + dtOffset:Offset[9];
dt:Suseptance = dt:Suseptance + dtOffset:Offset[10];
);
Names Default To Here( 1 );
dt = Data Table( "Table A" );
dtOffset = Data Table( "Table B" );
colList = dt << get column names(string);
For( i = 1, i <= N Items( colList ), i++,
// Find the offset value in the dtOffset(Table B) data table
// Because the column name from Table A may not have an offset
// in Table B that has to be accounted for
theRow = dtOffset << get rows where( dtOffset:Tests == colList[i] );
show(i,nrows(therow));
// If no rows are returned, no offset was found
If( N Rows( theRow ) == 1,
offset = dtOffset:Offset[theRow[1]];
For( k = 1, k <= N Rows( dt ), k++,
Column( dt, i )[k] = Column( dt, i )[k] + offset
);
);
</CODE></PRE><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2687" target="_blank">@txnelson</A><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6657" target="_blank"> @ih</A><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank"> @jthi</A><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6878" target="_blank"> @Jeff_Perkinson</A></P><P> </P><P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-412679" slang="en-US" mode="NONE"><LINGO-LABEL>Analytique</LINGO-LABEL><LINGO-LABEL>Script</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-413205" slang="en-US" mode="NONE">Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuel</LINGO-SUB><LINGO-BODY id="lingo-body-413205" slang="en-US" mode="NONE"><P>Eh bien, il n'y a pas que moi. j'ai déjà vu des posts similaires</P></LINGO-BODY><LINGO-SUB id="lingo-sub-413030" slang="en-US" mode="NONE">Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuel</LINGO-SUB><LINGO-BODY id="lingo-body-413030" slang="en-US" mode="NONE"><P>Le forum de discussion de la communauté n'est pas un endroit où aller pour faire écrire des scripts JMP pour vous !Vous devez prendre le temps d'apprendre JSL et d'utiliser le forum de discussion pour vous aider avec des problèmes spécifiques que vous ne comprenez pas.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-413029" slang="en-US" mode="NONE">Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuel</LINGO-SUB><LINGO-BODY id="lingo-body-413029" slang="en-US" mode="NONE"><P>L'entrée du fichier journal à partir de l'exécution de votre code est :</P>
<PRE>not enough arguments in access or evaluation of 'For' , For/*###*/(i = 1 ; N Rows( dt ) ; i++, Column( dtOffset )[i] = dt:colList[i]
+dtOffset:Offset[i])
at line 7 in Script 5.jsl</PRE>
<P>Ce que cela vous dit, c'est que la syntaxe de la fonction For() que vous utilisez est incorrecte.</P>
<P>La définition correcte peut être trouvée dans l'index de script ou dans le guide de script.De plus, si vous regardez votre implémentation de la fonction For() et l'exemple que j'ai fourni, votre version n'est pas la même.</P>
<P>Votre solution va nécessiter que vous parcouriez les colonnes de votre tableau A.Pour chaque colonne, vous devrez obtenir la valeur de décalage qui doit être appliquée aux valeurs de la colonne du tableau A, puis parcourir toutes les lignes de cette colonne, en appliquant le décalage correct.<CODE class=" language-jsl">
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuelSalut @ih ,
Je veux ajouter des valeurs de Tableau B Nom de la colonne "Décalage" pour chaque ligne du groupe de colonnes "Tests" dans le tableau A et générer un nouveau fichier de table de données avec des valeurs ajoutées. Il y a plus de 100 colonnes dans le tableau A. Comment puis-je utiliser une syntaxe de boucle pour parcourir chaque ligne et chaque colonne ?
Voici ce que j'ai essayé de commencer
Names Default To Here( 1 );
dt = Data Table( "Table A" );
dtOffset = Data Table( "Table B" );
colList = dt << get column names;
For(i=1; N Rows(dt); i++,
Column(dtOffset)[i] = dt:colList[i] + dtOffset:Offset[i];
);
Appréciez si vous pouviez suggérer
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuel@txnelson
Voici ce que j'ai essayé. Je ne sais pas ce qui ne va pas. Pouvez-vous s'il vous plaît jeter un oeil?
Names Default To Here( 1 );
dt = Data Table( "Table A" );
dtOffset = Data Table( "Table B" );
colList = dt << get column names;
For(i=1; N Rows(dt); i++,
Column(dtOffset)[i] = dt:colList[i] + dtOffset:Offset[i];
);
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuelVous pouvez utiliser
colList = dt << get column names;
pour obtenir les noms des colonnes dans la table de données
puis utilisez une boucle For()
For(i=1,i<=N Items(colList), i++,
.......
.......
.......
);
pour effectuer les opérations que vous devez effectuer pour chaque colonne.
Ceux-ci sont documentés dans le guide de script et l'index de script ...... avec des exemples
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuelComment puis-je utiliser une boucle pour effectuer une addition. Il y a plus de 100 colonnes dans le tableau A ?
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuelMerci beaucoup @txnelson tu es un génie 
Re : Ajouter des valeurs d'un autre fichier de table de données au fichier de table de données actuel- Veuillez prendre le temps de lire le Guide des scripts et de vous familiariser avec l'Index des scripts.
- Si vous avez besoin de parfaire vos compétences générales en programmation, il existe un grand nombre de sites sur Internet qui peuvent vous aider.
- Voici le script simple qui fera ce que vous voulez
Names Default To Here( 1 );
dt = Data Table( "Table A" );
dtOffset = Data Table( "Table B" );
For Each Row(
dt:Current = dt:Current + dtOffset:Offset[1];
dt:Voltage = dt:Voltage + dtOffset:Offset[2];
dt:Resistance = dt:Resistance + dtOffset:Offset[3];
dt:Inductance = dt:Inductance + dtOffset:Offset[4];
dt:Capacitance = dt:Capacitance + dtOffset:Offset[5];
dt:Power = dt:Power + dtOffset:Offset[6];
dt:Temperature = dt:Temperature + dtOffset:Offset[7];
dt:Humidity = dt:Humidity + dtOffset:Offset[8];
dt:Pressure = dt:Pressure + dtOffset:Offset[9];
dt:Suseptance = dt:Suseptance + dtOffset:Offset[10];
);