Aggiunge valori da un altro file della tabella dati al file della tabella dati correnteCIAO,
Ciao, ho un dubbio sullo script JSL (molto nuovo in questo!)
Ho due file di dati: Tabella A e Tabella B.
Tabella A:-
Tabella B:-

Voglio aggiungere valori da Tabella B Nome colonna "Offset" A ciascuna riga del gruppo di colonne "Test" nella tabella A e generare un nuovo file di tabella dati con i valori aggiunti.
PS: ci sono più di 100 colonne nel file della tabella A. Come posso utilizzare un ciclo for per iterare tutte le righe e le colonne?
Ecco cosa ho cercato di iniziare. Qualche idea su questo o un modo più efficiente per farlo?
</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>Analitica</LINGO-LABEL><LINGO-LABEL>Scripting</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-413205" slang="en-US" mode="NONE">Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati corrente</LINGO-SUB><LINGO-BODY id="lingo-body-413205" slang="en-US" mode="NONE"><P>Beh, non sono solo io. Ho già visto post simili</P></LINGO-BODY><LINGO-SUB id="lingo-sub-413030" slang="en-US" mode="NONE">Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati corrente</LINGO-SUB><LINGO-BODY id="lingo-body-413030" slang="en-US" mode="NONE"><P>Il forum di discussione della comunità non è un posto in cui rivolgersi per farsi scrivere gli script JMP!Devi prenderti il tempo per imparare JSL e utilizzare il forum di discussione per aiutarti con problemi specifici che non capisci.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-413029" slang="en-US" mode="NONE">Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati corrente</LINGO-SUB><LINGO-BODY id="lingo-body-413029" slang="en-US" mode="NONE"><P>La voce del file di registro da quando viene eseguito il codice è:</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>Ciò che questo ti sta dicendo è che la sintassi della funzione For () che stai utilizzando non è corretta.</P>
<P>La definizione corretta può essere trovata nello Scripting Index o nella Scripting Guide.Inoltre, se osservi la tua implementazione della funzione For() e l'esempio che ho fornito, la tua versione non è la stessa.</P>
<P>La tua soluzione richiederà di scorrere le colonne nella tabella A.Per ogni colonna dovrai ottenere il valore di offset che deve essere applicato ai valori nella colonna della tabella A, quindi scorrere tutte le righe in quella colonna, applicando l'offset corretto.<CODE class=" language-jsl">
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati correnteCIAO @ih ,
Voglio aggiungere valori da Tabella B Nome colonna "Offset" A ciascuna riga del gruppo di colonne "Test" nella tabella A e generare un nuovo file di tabella dati con i valori aggiunti. Ci sono più di 100 colonne nella Tabella A. Come posso utilizzare una sintassi del ciclo per iterare su ogni riga e colonna?
Ecco cosa ho cercato di iniziare
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];
);
Apprezzo se potessi suggerire
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati corrente@txnelson
Ecco cosa ho provato. Non sono sicuro di cosa c'è che non va. Puoi per favore dare un'occhiata?
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];
);
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati correntePuoi usare
colList = dt << get column names;
per ottenere i nomi delle colonne nella tabella dati
e quindi utilizzare un ciclo For()
For(i=1,i<=N Items(colList), i++,
.......
.......
.......
);
per eseguire le operazioni necessarie per ciascuna colonna.
Questi sono documentati nella Guida allo scripting e all'Indice dello scripting......con esempi
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati correnteCome posso usare un ciclo per eseguire l'addizione. Ci sono più di 100 colonne nella Tabella A?
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati correnteGrazie molto @txnelson sei un genio 
Oggetto: Aggiungere valori da un altro file della tabella dati al file della tabella dati corrente- Si prega di dedicare del tempo alla lettura della Scripting Guide e di familiarizzare con lo Scripting Index.
- Se hai bisogno di rispolverare le abilità generali di programmazione, ci sono un gran numero di siti su Internet che possono aiutarti.
- Ecco il semplice script che farà quello che vuoi
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];
);