Funzione concatenata sovrascrivendo le righe?Sto scrivendo parte di uno script per aggiornare una tabella aggiungendo nuove righe su di essa utilizzando la funzione "Concatena". Tuttavia, ogni volta che provo a concatenare un determinato set di 7 righe, lo script sovrascrive in qualche modo le prime sette righe della tabella originale con le nuove sette, quindi aggiunge anche le nuove sette righe in fondo. Non ci sono valori identici tra le righe nuove e sostituite in nessuna delle colonne della tabella.
Qualcuno sa cosa potrebbe succedere qui? C'è una parte della funzione Concatenate che potrei trascurare?
Molte grazie,
Brian D.
Ri: Concatena la funzione di sovrascrivere le righe?È possibile che il tuo codice faccia qualcosa del genere:
dt1 = Data Table( "old rows" );
dt2 = Data Table( "new rows" );
dt3 = dt2 << Concatentate( dt2, ... );
Cioè, il codice concatena inavvertitamente la stessa tabella di dati a se stesso?
Ri: Concatena la funzione di sovrascrivere le righe?Se ci dai il tuo codice, possiamo aiutarti molto meglio.Ri: Concatena la funzione di sovrascrivere le righe?Grazie per la risposta. Io non ci credo Ho una tabella che sto aggiornando ("FPKM by gene running") e una nuova ("Nuovi geni FPKM di ferm & strain") che la mia sceneggiatura genera. La parte di aggiornamento e concatenazione del mio script è la seguente:
dt5 = Data Table( "New genes FPKM by ferm & strain" );
dt6 = Data Table( "FPKM by gene running" );
dt6 << Update( With( dt5)));
dt6 << Concatenate( dt5, append to first table);
Sto usando la funzione Concatenate e Aggiorna perché apparentemente Update aggiungerà nuove colonne, ma non nuove righe? Idealmente, vorrei aggiungere colonne E righe alla tabella "FPKM by gene running", e solo quelle che non erano presenti in precedenza. Mi scuso perché sono nuovo di JSL.
Ri: Concatena la funzione di sovrascrivere le righe?I risultati del tuo codice descritti sono esattamente come mi aspetto da JMP. Come specificato
dt6 << Update( With( dt5)));
prenderà la riga 1 dalla tabella dati dt5 e la scriverà in cima alla riga 1 dalla tabella dati dt6. E continuerà a scrivere la riga 2 da dt5 sopra la riga 2 in dt6, ecc. fino all'ultima riga di cui mai la tabella dei dati ha il numero più corto di righe.
Quindi la dichiarazione
dt6 << Concatenate( dt5, append to first table);
aggiungerà nuove righe nella parte inferiore della tabella di dati dt6, una nuova riga per ogni riga in dt5, aggiungendo nuove colonne alla tabella di dati dt6 che si trovano in dt5 che non erano in dt6.
Quello che credo tu voglia fare è usare a
Tabelle ==> Partecipa
Che può aggiungere sia nuove righe che nuove colonne alla tabella dei dati. Lo fa creando una nuova tabella, ma è un'operazione molto semplice, che una volta creata la nuova tabella, eliminare il vecchio dt6 e rinominare la nuova tabella con il nome di dt6.