Come copiare e incollare le celle di dati da diverse celle ID?Ciao,
Ho un esempio di tabella dei dati incluso in questo post. Ho bisogno di copiare le informazioni dalle celle ProTest dalla fase B alla fase A nella stessa colonna. Tuttavia, per prima cosa devo abbinare i Test_ID seguendo la regola:
Fase A <-> Fase B
1 11
3 13
5 15
7 17
9 19
Ho un numero diverso di partecipanti a causa della mancanza di dati.
Come posso farlo, per favore?
Grazie molto!
Ri: Come copiare e incollare le celle di dati da diverse celle ID?oops! Lo script ottiene sempre solo il primo valore che è la fase A. Quindi modifica l'istruzione con un filtro aggiuntivo e: Fase == "B"
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid & :Phase=="B");
Ri: Come copiare e incollare le celle di dati da diverse celle ID?Stupefacente, @ gzmorgan0 !! Lavorato!!
Dove posso saperne di più su quei comandi come ottenere righe where () e nrow () e altri per avere un controllo completo da righe e colonne? Il nrow () accetta un intero al suo interno nel caso in cui desidero limitare JMP scorre il vettore?
Proverò ad adattarmi al mio problema ... _ / \ _
Grazie molto!!
Ri: Come copiare e incollare le celle di dati da diverse celle ID?oops! Lo script ottiene sempre solo il primo valore che è la fase A. Quindi modifica l'istruzione con un filtro aggiuntivo e: Fase == "B"
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid & :Phase=="B");
Ri: Come copiare e incollare le celle di dati da diverse celle ID?Ciao @ gzmorgan0
Grazie per la soluzione! Solo un punteggio non può essere copiato dalla fase B alla fase A. È Test_id = 9 (ID uguale). Non ho capito perché.
Il tuo script è allegato.
Grazie molto!
Ri: Come copiare e incollare le celle di dati da diverse celle ID?Dovresti esaminare l'array associativo di JMP. Pensa a un array associativo come a un elenco con chiave. Si definisce la chiave e i valori associati. Le chiavi possono essere stringhe, espressioni, elenchi, quasi tutto tranne valori decimali numerici, gli interi vanno bene. Vedi lo script modificato di seguito. In altri linguaggi di scripting, un array associativo è chiamato un dizionario. Lo uso spesso.
La risposta è sì alla tua altra domanda, aggiungi più variabili di filtro.
In bocca al lupo.
Names Default to Here(1);
dt = Data Table("example2_modified");
decode_aa = Associative Array({1,2,5,8,9}, {20,22,55,18,9});
For(i=1, i<=nrow(dt), i++,
if (:Phase[i] =="A",
uid = :Subject_ID[i];
tid = decode_aa[ :Test_ID[i] ];
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid);
if(nrow(xx)==1,
:ProTest[i] = :ProTest[xx[1]]
);
); //end if Phase
); // end For iRi: Come copiare e incollare le celle di dati da diverse celle ID?Brillante, @ gzmorgan0 ! 
Ho due domande:
1. Nel caso in cui mi piacerebbe aggiungere più "filtri" o "By", dovrei creare più variabili (ad esempio, uid, tid) e inserirle nella funzione "get rows where ()", aggiungendo & "Nome colonna ==" nuova variabile '"?
2. Se Test_id "non può" essere definito come una sequenza logica come "sum 10", per favore, pensi che sia possibile creare, per esempio, prima (o dentro) "For loop statement" una matrice che associa ogni Test_id dalla Fase A alla fase B? In questo modo, l'utente può definire qualsiasi associazione tra id in entrambe le fasi.
Vorrei ringraziarvi per il vostro aiuto!
Migliore!
PS: In questo post è incluso un suggerimento per la seguente associazione e ho aggiunto il tuo script al suo interno:
Fase A Fase B
1 20
2 22
5 55
8 18
9 9
Ri: Come copiare e incollare le celle di dati da diverse celle ID?Anche se la tua tabella è ordinata e carina, questo script non assume nulla, ammette anche la possibilità che non ci sia un ProTest corrispondente.
Names Default to Here(1);
dt = Data Table("example2");
For(i=1, i<=nrow(dt), i++,
if (:Phase[i] =="A",
uid = :Subject_ID[i];
tid = :Test_ID[i] +10;
xx = dt << get rows where(:Subject_ID ==uid & :Test_ID == tid);
if(nrow(xx)==1,
:ProTest[i] = :ProTest[xx[1]]
);
); //end if Phase
); // end For i