La seguente domanda è stata posta sulla pagina interna della comunità degli utenti JMP di P&G. Passando a questo forum:
Ho due tabelle a cui voglio unirmi in base ai timestamp. Tuttavia, a causa della fonte dati, non hanno gli stessi orari. L'unica opzione che riesco a trovare in JMP è una corrispondenza esatta. Esiste un'opzione in JMP per utilizzare un join più vicino simile a come funziona Pandas Join o Excel Vlookup?
La comunità degli utenti di P&G JMP ha tentato di fornire alcune risposte. Esiste una soluzione migliore di quella che abbiamo cercato di consigliare?
Risposta 1:
Rilasciare entrambe le tabelle in Excel come fogli separati, aggiungere una colonna vlookup al foglio1 facendo riferimento al foglio2, quindi riportarle a JMP per l'unione? Non ho visto una funzione di corrispondenza più vicina in JMP, ma sarei interessato se esistesse...
Risposta n. 2:
Le definizioni di "join più vicino" non sono coerenti. La mia memoria di CERCA.VERT (a meno che non sia modificata) è quella di prendere il tempo X dalla tabella dati X e abbinarlo al tempo Y più vicino dalla tabella dati Y in modo tale che X<=Y (o è Y<=X), che a volte può essere un intervallo molto lungo, soprattutto se i dati vengono raccolti a intervalli irregolari nella tabella dati X o nella tabella dati Y. La possibilità di intervalli irregolari può davvero complicare unioni come questa.
Sfortunatamente non esistono approcci rapidi in JMP, ma ci sono un paio di cose che puoi provare.
Un approccio che ho provato in precedenza consiste nell'adattare una spline alle misurazioni critiche di interesse (con variabile X = tempo), quindi salvare la formula di previsione e trasferirla nell'altra tabella. Se fatto correttamente, questo essenzialmente interpola le misurazioni critiche e le abbina.
Un'altra opzione è eseguire un'unione completa (i timestamp non corrisponderanno), quindi creare una colonna Formula per verificare se manca l'ora nella tabella dati X; se lo è, utilizzare l'ora dalla tabella dati Y, altrimenti utilizzare l'ora dalla tabella dati X. Quindi ordinare in base a questa nuova colonna Ora. Quindi creare formule su ciascuna misurazione critica di interesse. In queste formule, controlla se manca o meno la misurazione critica. Se non manca, riporta la misurazione critica e, in caso contrario, utilizza la funzione Lag (gruppo di funzioni Riga nell'editor di formule) rispetto a qualunque nome tu stia nominando questa nuova colonna formula per ridurre l'osservazione da una riga in su.
Risposta n. 3:
In molti casi è possibile creare una corrispondenza più vicina raggruppando entrambi i timestamp nello stesso modo (ad esempio raggruppando i dati per secondi, 10 secondi, 1 minuto...) prima di unirsi. Funziona abbastanza bene purché i timestamp non siano "troppo diversi" e si possa accettare una certa aggregazione di dati.
Binning è una funzione di colonna in JMP
Follow-up dell'interrogante originale:
Grazie per i suggerimenti Molto probabilmente eseguirò l'unione al di fuori di JMP e poi effettuerò l'analisi dopo la combinazione.
Non sono sicuro di quanti altri si siano imbattuti in questo, ma questo potrebbe essere un suggerimento da passare a JMP per incorporare questa funzionalità nella finestra di dialogo di partecipazione invece di passaggi aggiuntivi al di fuori di essa.
@Peter_Hersh ho capito e sono d'accordo che probabilmente non è saggio consigliare JMP come software ideale per la pulizia e l'ordine dei dati almeno per casi come questo. Il punto di forza di JMP è sempre stato l'esplorazione e l'analisi rispetto alle attività insolite di disposizione dei dati. I problemi di unione dei dati basati sul tempo attualmente vengono gestiti meglio al di fuori di JMP nei linguaggi di codifica in cui si prendono decisioni intenzionali su cosa fare quando si hanno mappature molti-a-uno o indicazioni temporali costantemente disattivate, ecc. Grazie ancora.
@mjoner per il momento non prevediamo di aggiungerlo a JMP.La preoccupazione è che il passaggio da una corrispondenza vera a una corrispondenza fuzzy non è qualcosa con cui ci sentiamo a nostro agio in termini di true join.L'utilizzo del raggruppamento o addirittura dell'ordinamento della tabella in base a un timestamp e l'utilizzo di tabelle di dati di confronto dovrebbero aiutare a risolvere alcune delle sfide.
@mjoner , Esiste una soluzione alternativa con le formule veloci all'interno dell'opzione di scelta rapida sulle intestazioni delle formule.Ciò consentirà di arrotondare la data e l'ora al minuto, secondo e cinque secondi più vicino.So che non è conveniente come una corrispondenza fuzzy, ma è un'altra opzione.Mi assicurerò che lo sviluppo lo sappia