elimina duplicatoCiao a tutti,
Sto cercando di ordinare la mia tabella dati, ha valori duplicati:

Come vedi, ho lo stesso valore per un nome diverso in CHART_PARAMETER, il mio interesse è prendere solo righe che hanno un tipo di CHART_PARAMETER per ogni valore. Ho provato Filtra dati ma apre la finestra JMP con le opzioni tra cui scegliere, sto provando a fare tutti i calcoli in modo che l'utente non li veda e crei una nuova tabella dati con le righe selezionate e faccia ulteriori manipolazioni con questi dati.
Grazie.
Re: cancella duplicatiGuarda nell'indice degli script
Aiuto==>Indice script==>Funzioni==>Lag
Inoltre, guarda nel libro Utilizzo di JMP
Aiuto==>Libri==Utilizzo di JMP
Ritardo
Restituisce il valore del primo argomento nella riga definita dalla riga corrente meno il secondo argomento. Il ritardo predefinito è uno, che puoi modificare in qualsiasi numero. Manca il valore restituito per qualsiasi ritardo che identifica un numero di riga inferiore a uno. Si noti che Lag(X, n) dà lo stesso risultato della notazione in pedice, XRow( )–n.
Re: cancella duplicatiPuoi inviarmi informazioni per la funzione di ritardo se hai? Ho fondato alcuni esempi ma non nel modo in cui li hai usati tu.
Grazie mille per il vostro aiuto!Re: cancella duplicatiQuesto è il mio errore.Nella mia fretta, ho indicato il posto sbagliato per il "num" finale.Ecco un piccolo script che crea la tua colonna Entity e quindi aggiunge la nuova colonna con il contatore al suo interno.
Names Default To Here( 1 );
dt = New Table( "count",
Add Rows( 34 ),
New Column( "Entity",
Character,
"Nominal",
Set Values(
{"RLC101", "RLC101", "RLC101", "RLC101", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102",
"RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC102", "RLC103", "RLC103", "RLC103",
"RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC103", "RLC104",
"RLC104", "RLC104", "RLC104", "RLC104", "RLC101"}
)
)
);
dt << New Column( "Number",
numeric,
formula( If( Lag( :ENTITY ) != :ENTITY, num = 1, num = num + 1 );
num;
));Re: cancella duplicatiCiao,
Ho ancora un solo valore "1" per ogni ENTITÀ.
MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
//MP:LOT_DATA_COLLECT_DATE << Format("m/d/y")<<Data Type("Character")<<Modeling Type("Nominal") ;
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);
num ; Posso usare in altro modo? Cosa posso fare di sbagliato? La data dovrebbe essere in un formato specifico?
La funzione di ritardo confronta EVENT per EVENT dalla riga precedente, come fa ora quel valore da confrontare è la colonna Date?
Grazie.
Re: cancella duplicatiLa formula non è stata copiata correttamente.Hai lasciato il "num" finale fuori dalla formula.Per come funzionano le formule, l'ultimo valore espresso è il valore restituito a jmp.Pertanto, specificando "num" come ultimo elemento nella formula, è ciò che viene restituito
MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);
num;
Re: cancella duplicatiJim ciao,
Ho provato il tuo script
Perfavore guarda:
Tabella dopo l'esecuzione del codice.
Num non ha ottenuto numeri corretti.

MP = AR << Sort(
by(ENTITY,LOT_DATA_COLLECT_DATE),Order(Ascending,Descending)
);
MP << New Column("num",
Character,
Formula(
If( Lag(:ENTITY) != :ENTITY,
num = 1,
num = num + 1
)
)
);Grazie.
Re: cancella duplicatiPenso che la soluzione sia più semplice di quanto pensi.
- Ordina i dati per Entità ascendente, data discendente
- Crea una nuova colonna con la seguente formula, che è un semplice contatore all'interno di ogni Entità
If( Lag( :Entity ) != :Entity,
num = 1,
num = num + 1
);
num;
Infine, puoi selezionare dove la tua nuova colonna ha un valore di <= 3
Re: cancella duplicatiCiao,
Grazie per una rapida risposta.
Ora sto cercando di selezionare gli ultimi 3 punti per data per ciascuna Entità. Posso raggruppare la tabella per entità, ma dopo devo trovare gli ultimi 3 punti per intervallo di date. Come posso farlo usando seleziona dove o qualsiasi altra funzione.
RCL è il mio nome Entity ed Entiry_1 e devo selezionare gli ultimi 3 valori per data per ogni colonna. Per esempio:
RCL101 3 ultimi valori per data in Chart_Value e Grafico_Valore_1.
Userò qualsiasi aiuto 
Grazie.
I miei dati tabella:
LOT_DATA_COLLECT_DATE CHART_TYPE MODULE CHART_VALUE ENTITY MEASUREMENT_SET_NAME MONITOR_SET_NAME ENTITY_1 LOT_DATA_COLLECT_DATE_1 CHART_VALUE_1 MONITOR_SET_NAME_1 CHART_TYPE_1
2017/01/20 2:46:43 PM X-BAR RCL FE 8234.73 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/20 8:25:35 PM X-BAR RCL FE 8734.13 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 4:40:38 AM X-BAR RCL FE 8743.67 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 3:51:54 PM X-BAR RCL FE 8539.85 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/25 10:39:43 AM X-BAR RCL FE 9179.86 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/28 9:03:46 PM X-BAR RCL FE 8097.51 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/31 10:26:57 PM X-BAR RCL FE 7979.97 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/07 6:53:08 PM X-BAR RCL FE 7992.35 RCL104 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/22 8:40:50 AM X-BAR RCL FE 7672.35 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/27 7:54:09 AM X-BAR RCL FE 8319.25 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/02 3:11:43 AM X-BAR RCL FE 7506.47 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/06 10:42:00 PM X-BAR RCL FE 8046.7 RCL103 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/18 12:47:10 AM X-BAR RCL FE 81.0555 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/20 12:35:05 PM X-BAR RCL FE 9159.32 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/28 1:58:47 AM X-BAR RCL FE 9278.75 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/03 4:38:46 AM X-BAR RCL FE 9288.21 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/07 4:24:21 AM X-BAR RCL FE 8677.35 RCL102 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/21 7:22:14 AM X-BAR RCL FE 9969.63 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/24 1:10:21 PM X-BAR RCL FE 9291.7 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/01/31 1:16:24 AM X-BAR RCL FE 9521.71 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
2017/02/05 4:41:46 AM X-BAR RCL FE 9287.35 RCL101 RCLFE.BATCH_OX_WTW.74.DER RCLFE.BATCH_ASHRATE_PST.74.MON
RCL101 2017/01/21 7:34:05 AM 3897.38724 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/01/24 1:28:26 PM 3898.22897 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/01/31 12:17:43 AM 4002.58931 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL101 2017/02/05 5:01:06 AM 4014.63793 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL102 2017/02/03 4:41:11 AM 4001.03793 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL102 2017/02/07 5:03:23 AM 3927.14069 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/02 5:45:08 PM 3831.54276 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/02 5:49:14 PM 3827.88931 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/03 3:24:54 AM 3786.87207 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL103 2017/02/06 11:49:29 PM 3847.12241 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/20 2:49:09 PM 3960.13897 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/29 1:54:30 AM 3988.62414 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/01/31 9:58:15 PM 3984.87379 RCLFE.ASHRATE_PST.74.MON X-BAR
RCL104 2017/02/07 6:42:46 PM 4064.63414 RCLFE.ASHRATE_PST.74.MON X-BAR
Re: cancella duplicatiEcco uno script rapido che restituirà una tabella di dati in cui contiene solo i valori_grafico che hanno una voce
Names Default To Here( 1 );
dt = Current Data Table();
dtsumm = dt << Summary(
invisible,
Group( :Chart_Value ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
dtsumm << select where( :n rows > 1 );
dtsumm << delete rows;
dtfinal = dt << Join(
With( dtsumm ),
By Matching Columns( :Chart_Value = :Chart_Value ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
Close( dtsum, nosave );