Estrazione di dati da grafico/tabella dati<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho una tabella dati che traccia quanto segue.Devo trovare i valori x corrispondenti per i punti più vicini a y=0.Ho bisogno dei primi due punti (linee rosse) che attraversano lo zero (più vicino), il terzo incrocio non è interessante.
Posso trovare il valore più vicino usando lo script:
valore = 0;
d = Abs((:"col" << ottieni valori) - valore);
righe = Loc(d == Min(d));
Mostra(righe);
Tabella dati( "DT" ) << seleziona righe(righe);
Ciò restituisce il valore più vicino alla linea dello zero indipendentemente da quando la attraversa.

Questi due valori x verranno inseriti in dt come una nuova colonna e utilizzati per ulteriori calcoli.Sono sulla strada giusta con lo script sopra?
A proposito, sono nuovo nello scripting JMP (e nella programmazione in generale).
Grazie!
Ri: Estrazione di dati da grafico/tabella datiSe prendi i dati dalla tabella di riepilogo che hai dichiarato di aver calcolato ed esegui Tables==>Unisci tali dati alla tabella dati originale, puoi fare riferimento nel tuo script.Oppure se aggiungi manualmente i dati, funzionerà.Pertanto, se nella colonna denominata "Metà valore" sarà presente un valore per "Metà valore" per ogni riga, è possibile modificare gli "0" in
Metà Valore e metà valore[I+1]
Se( (dt:y >= dt:Metà valore & dt:y[I+1]<=dt:Metà valore[I+1]......................
Ri: Estrazione di dati da grafico/tabella datiPoiché sto prendendo la metà del valore del massimo, non esiste un valore di dati corrispondente nella tabella dati da abbinare e ottenere il valore x.L'ho fatto per ottenere il valore x che corrisponde al massimo, ma ora non è un valore che corrisponde poiché è un valore calcolato.Sto cercando di utilizzare il valore metà come valore per estrarre i valori x corrispondenti.Similmente allo script precedente in cui ottiene i valori che si incrociano a zero, devo ottenere i valori più vicini al metà valore calcolato.Stavo cercando di impostare la metà del valore come variabile per ciascun ID parte e di scorrere ciascun ID parte e ottenere i valori più vicini alla metà valore:
Funzionerebbe in modo simile allo script precedente che ottiene i valori più vicini allo zero, tranne che otterrebbe i valori più vicini alla metà dei valori calcolati per ciascun ID parte.
Ri: Estrazione di dati da grafico/tabella datiSe interpreto correttamente ciò che stai chiedendo, credo che il modo più semplice sia prendere la tabella di riepilogo ed eseguire una tabella Tables==>Unisci corrispondenza sull'ID parte.Aggiungerà il valore massimo a ciascuna riga per l'ID parte appropriato
Ri: Estrazione di dati da grafico/tabella datiHo un'altra domanda.Ho un altro parametro che sto raccogliendo dal mio set di dati e ho creato una tabella di riepilogo che trova il valore massimo per quel parametro.Da lì prendo la metà di quel valore e lo registro in una nuova colonna ("metà valore").Vorrei utilizzare la metà del valore nello script per ottenere i valori x corrispondenti per ciascun ID parte:

Ciascun ID parte avrà un valore di metà diverso.Quella sopra è la sezione dello script in cui è necessario inserire la metà del valore per ottenere il valore del passo corrispondente.Ho problemi a inserire correttamente il valore di metà nello script e a indicizzarlo tramite ciascun ID parte e il relativo valore di metà associato. Qual è il modo migliore per inserire la metà del valore corretto nello script per ciascun ID parte?
Ri: Estrazione di dati da grafico/tabella datiGrazie Jim!
Funziona alla grande.
Ri: Estrazione di dati da grafico/tabella datiEcco una rielaborazione del codice per incorporare l'ID parte nel mix
Nomi predefiniti qui ( 1 ) ;
dt = Tabella dati corrente () ;
dtout = Nuova tabella ( "Uscite" ,
Nuova colonna ( "ID parte" , carattere ) ,
Nuova colonna ( "PrimoMin" ) ,
Nuova colonna ( "Secondo minuto" )
) ;
Tabella dati corrente (dt) ;
Per ( io = 1 , io <= N righe (dt) - 1 , io ++,
// All'inizio del ciclo dei dati e quando l'ID della parte
// modifiche, è necessario impostare i valori FirstMin e SecondMin
// valori mancanti
Se ( io == 1 ,
PrimoMin = . ;
SecondoMin = . ;,
dt : ID parte != dt : ID parte[i - 1 ] ,
PrimoMin = . ;
SecondoMin = . ;
) ;
// Se viene trovato un valore che attraversa lo zero, elabora i dati
Se ((DT : sì >= 0 & DT : sì[i + 1 ] <= 0 ) | (DT : sì <= 0 & DT : sì[i + 1 ] >= 0 ) ,
Se ( Addominali (DT : sì ) < Addominali (DT : sì[i + 1 ]) ,
min = DT : sì ;
pesciolino = IO ;
,
min = DT : sì[i + 1 ] ;
pesciolino = io + 1 ;
) ;
// Se questo è il primo incrocio, imposta i valori per firstMin
Se ( Manca (PrimoMin) ,
PrimoMin = min ;
Prima riga = pesciolino ;,
// Se questo è il secondo incrocio, imposta i valori per SecondMin
// e seleziona anche le righe nella tabella dei dati di input
// e infine invia il primo e il secondo risultato all'output
// tabella dati
// Perché stiamo raccogliendo dati solo per le prime 2 traversate
// e stanno utilizzando i valori FirstMin e SecondMin
// mancanti come trigger nello script, una volta sia Primo che Secondo
// i minimi sono impostati sui valori effettivi, tutti gli incroci successivi
// verrà ignorato finché non verrà rilevata una modifica dell'ID parte
Manca (SecondoMin) ,
SecondoMin = min ;
Seconda fila = pesciolino ;
// Punta indietro alla tabella dei dati di input per selezionare le righe
tabella dati corrente (dt) ;
Selezionato ( Stato riga ( Prima riga ) ) = 1 ;
Selezionato ( Stato riga ( Seconda fila ) ) = 1 ;
dtout << aggiungere righe ( 1 ) ;
dtout : ID parte[ N righe (dtout)] = dt : ID parte[Seconda riga] ;
dtout : PrimoMin[ N righe (dtout)] = PrimoMin ;
dtout : SecondoMin[ N righe (dtout)] = SecondoMin ;
) ;
) ;
) ;
Ri: Estrazione di dati da grafico/tabella datiUn'altra domanda su come far sì che questo script esegua una tabella con molte parti.Ho 3 colonne nella tabella dati; ID parte, passo, valore.Ci sono molte parti diverse e ognuna ha diverse centinaia di passaggi.Voglio ottenere i due passaggi per lo zero, come sopra, per ciascun ID parte univoco nella tabella.Non sei sicuro dell'approccio migliore su come ottenere un ID parte univoco e inserirlo nello script precedente per ottenere i due valori necessari per ciascun ID parte?
Ri: Estrazione di dati da grafico/tabella datiGrazie Jim!
Questo è esattamente ciò di cui avevo bisogno e funziona come hai descritto nel tuo post.Ora sto lavorando per incorporare i dati raccolti in ulteriori script di analisi.
Grazie ancora.
Ri: Estrazione di dati da grafico/tabella datiPenso che il modo in cui devi affrontare questo problema sia passare attraverso i dati e poi trovare la prima e la seconda volta che i dati incrociano lo zero.Quando i dati superano lo 0, trova quale dei valori è il più vicino allo zero e quindi registra il valore e la riga.Quindi ripeti per la seconda occorrenza, quindi interrompi la lettura.Infine seleziona le righe trovate.Ecco un semplice script che fa esattamente quello che ho descritto sopra:
Nomi predefiniti qui ( 1 ) ;
dt = Tabella dati corrente () ;
PrimoMin = . ;
SecondoMin = . ;
Per ( io = 1 , io <= N righe (dt) - 1 , io ++,
Se (( : sì >= 0 & : sì[i + 1 ] <= 0 ) | ( : sì <= 0 & : sì[i + 1 ] >= 0 ) ,
Se ( Addominali ( : sì ) < Addominali ( : sì[i + 1 ]) ,
min = : sì ;
pesciolino = IO ;
,
min = : sì[i + 1 ] ;
pesciolino = io + 1 ;
) ;
Se ( Manca (PrimoMin) ,
PrimoMin = min ;
Prima riga = pesciolino ;
,
SecondoMin = min ;
Seconda fila = pesciolino ;
Rottura () ;
) ;
) ;
selezionato ( rowstate (Prima riga)) = 1 ;
selezionato ( rowstate (Seconda fila)) = 1 ;