Come seleziono le righe tra gli intervalli di dateCiao a tutti,
Sto cercando di capire come selezionare righe specifiche per un intervallo di date utilizzando i dati di una colonna per ultima data.
C'è un modo per farlo in un ciclo for?

Ri: Come seleziono le righe tra gli intervalli di dateGrazie Jim,
Correzione molto semplice, dal modo in cui vengono prese le misurazioni ho più parametri che hanno una data massima ripetuta. Ha funzionato comunque. Di seguito è riportato lo script che mi è venuto in mente, tuttavia ho creato un altro incubo logico di scegliere quale tabella di sottoinsieme ha l'ID parte più recente. La tua soluzione era molto più semplice.
dt = data table ("XYZ");
// Get unique values
uVals = AssociativeArray(:Part ID << getValues) << getKeys;
// Make Subset Tables
for(g = 1, g <= NItems(uVals), g++,
r2get = dt << getRowsWhere(:Part ID == uVals[g]);
dt2 = dt << subset(Rows(r2get));
dt2 << setName("subset ");
Ri: Come seleziono le righe tra gli intervalli di dateÈ possibile utilizzare espressioni booleane come argomento di << Seleziona Dove Messaggio. Cioè, puoi usare la logica E , O , E non funzioni o operatori per ottenere sia la data che il prodotto che soddisfa entrambi i criteri. Se si tratta di una ricerca seriale, potrebbe essere necessario trovare prima l'ultima data e utilizzarla per trovare l'ID prodotto.
Puoi usare il << Ottieni righe dove ( ... ) messaggio per restituire i numeri di riga corrispondenti al criterio di data. È possibile utilizzare questo vettore per sottoscrivere quelle righe dalla colonna di dati per ottenere tutti gli ID parte come elenco. Quindi esamina l'elenco per trovare quello che desideri.
Ri: Come seleziono le righe tra gli intervalli di dateSpero di interpretare correttamente la tua domanda.Lo script seguente troverà la riga che contiene il Part_ID della data massima e quindi selezionerà tutte le righe che hanno quel valore Part_ID
Names Default To Here( 1 );
dt = Current Data Table();
// Find the Row(s) that have the current Max Date
MaxRows = dt << get rows where( dt:Date == Col Max( dt:Date ) );
// MaxRows is a matrix that contains all of the rows that have the
// max date. Since your "Date" column is actually a date time
// value that contains minutes and seconds, it is doubtful that
// more than one row will have the Max value. However, we will
// now just get the last row from that matrix
TheRow = MaxRows[N Rows( MaxRows )];
// Now we can get the Part_ID for the row in question
TargetPartID = dt:Part_ID[TheRow];
// Now select all rows that have that Part_ID
dt << seleect where( dt:Part_ID == TargetPartID );
Ri: Come seleziono le righe tra gli intervalli di dateCredo di non essermi spiegato troppo bene.
Per prima cosa voglio selezionare tutte le righe con l'ultima data;
dt << select where(nome ("Data") == col Max(:Data));
Successivamente voglio selezionare solo le righe con il PART ID che corrisponde all'ultimo PART ID (id est the max date)
Ri: Come seleziono le righe tra gli intervalli di dateCredo di non essermi spiegato troppo bene.
Per prima cosa voglio selezionare tutte le righe con l'ultima data;
dt << select where(nome ("Data") == col Max(:Data));
Successivamente voglio selezionare solo le righe con il PART ID che corrisponde all'ultimo PART ID (id est the max date)
Ri: Come seleziono le righe tra gli intervalli di dateIn questo caso, se le date sono fisse, è possibile utilizzare un valore letterale o costante. Sembra proprio come la stringa sopra ma non è racchiusa tra virgolette doppie. JMP interpreterà (e visualizzerà) questo valore come la data e l'ora appropriate. Cioè, devi solo entrare
Date > 20Dec2015:00:00:00
in questo caso. Questo modo è più conciso ed elimina la necessità di affrontare formati e concerti. Non è nemmeno necessario utilizzare la specifica completa. Questo è sufficiente:
Date > 20Dec2015
Ri: Come seleziono le righe tra gli intervalli di dateEcco una semplice soluzione utilizzando Seleziona dove:
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where(
:Date > Informat( "20Dec2015:00:00:00", "MDYHMS" ) &
:Date <= Informat( "20Dec2016:00:00:00", "MDYHMS" )
);
Puoi anche eseguire questa operazione in modo interattivo utilizzando il menu a discesa per la tabella dei dati:
Righe==>Selezione riga==>Seleziona dove
Ri: Come seleziono le righe tra gli intervalli di dateL'intento specifico è quello di separare il nuovo ID parte dal vecchio ID parte