"Fuzzymerge": unisci tabelle con timestamp leggermente diversiSpesso ho file di dati provenienti da fonti diverse a cui voglio unirmi in base all'ora, ma poiché provengono da sistemi diversi i loro timestamp sono solo leggermente diversi.Abbiamo risolto questo problema utilizzando JMP KDTable oggetto che consente una ricerca pazza e veloce del vicino più vicino.Questo "fuzzymerge" troverà la riga più vicina nel tempo in una seconda tabella per ogni riga nella tabella principale e unirà quelle righe nella singola tabella risultante.
Ho trovato alcuni altri esempi di questo nella mia ricerca sulla comunità, ma nessuno con una GUI per renderlo accessibile ai non scripter.
Per utilizzare questo, eseguire prima lo script 'fn_fuzzymerge_generic' per caricare la funzione personalizzata in JMP.Quindi esegui lo script fuzzymerge_generic_GUI con le tue tabelle di dati aperte.Potresti dare un'occhiata a una distribuzione della colonna "Fuzzy Merge delta" che è la differenza tra le colonne temporali delle due tabelle per le righe che sono state unite.Valori grandi indicano che non ci sono dati "vicini" a quella riga nella tabella principale.
Nota che questo troverà la riga più vicina *in qualsiasi direzione*, avanti o indietro nel tempo.
Spero che questo aiuti qualcuno!
Kristo
Analisi esplorativa dei datiUtilitàRi: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiGrazie mille, questo è stato molto utile per il nostro gruppo poiché spesso dobbiamo combinare diversi file con timestamp diversi. Funziona perfettamente! Suggerirei un'opzione per salvare i risultati in una nuova tabella con un nuovo nome, piuttosto che cambiare la tabella principale stessa.
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiQuindi hai il tavolo A con una riga ogni secondo e il tavolo B con una riga ogni ora.Se usi questo fuzzymerge e unisci in A (la tabella principale) dalla tabella B (la tabella "con"), finirai per trovare la riga più vicina in B per ogni riga in A.Sembra che quello che stai chiedendo sia di farlo al contrario: imposta il tavolo B come tavolo "principale" e il tavolo A come tavolo "con". Chiamiamola tabella C.Questo ti darà la singola riga dell'armadio in A per ogni riga in B.Se desideri ancora una tabella con tutte le righe della tabella A, ma dati vuoti per B, puoi quindi tabella-> unire C con A abbinando il timestamp.
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversi@klk Ho una tabella con timestamp ogni secondo e un'altra tabella con un timestamp ogni ora. Entrambe le colonne mostrano l'ora in ore. Quando unisco le tabelle con il tuo script, abbinerà la seconda tabella in più posizioni nella prima tabella fino a raggiungere un delta di 0,5, quindi corrisponderà al timestamp successivo. Finisco con più corrispondenze invece di una singola corrispondenza.
C'è un modo per imporre una singola corrispondenza fuzzy? forse definendo manualmente un singolo delta?
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversi
@klk questa sceneggiatura è fantastica!
Mi chiedevo se potessi completarlo con un paio di elementi:
1. Aggiungere un pulsante Annulla alla finestra della GUI
2. Sarebbe possibile effettuare l'unione per gruppo? ad esempio potrei avere due serie temporali che dovrebbero essere tenute separate e il nome della serie si trova in una delle colonne.
Grazie!!!
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiGrazie per la condivisione! Sarebbe fantastico avere un fattore di tolleranza in modo da non unire gli indici che sono "troppo lontani".
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiKristo, sì, sono stato in questa situazione esatta, come sono sicuro che molte persone hanno. Ho appena deciso che sarebbe stato troppo difficile da capire. Sono contento che tu abbia dedicato del tempo a scrivere questa sceneggiatura.
So che avrò l'opportunità di usarlo presto.
Grazie
Fiona
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiOttima sceneggiatura e buon supporto. mi piace .
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiSono contento che aiuti!Nota che l'ho appena aggiornato con una piccola correzione.
Ri: "Fuzzymerge" - unisci tabelle con timestamp leggermente diversiMolto bello. Stavo cercando qualcosa del genere. Grazie!