Ho preso i dati da Strava e li ho portati in JMP. I dati sono in un formato JSON come quello allegato. A questo punto per me è un processo un po 'doloroso che coinvolge lo stacking di più serie che elimina colonne e molte manovre di dati. Vorrei finire con i due tavoli che ho allegato. Spero che sia solo la mia mancanza di conoscenza con l'analisi JSON a causare il problema. Se qualcuno ha la possibilità di dare un'occhiata apprezzerei qualsiasi idea su come rendere il processo meno doloroso.
**** EDIT: assicurati di cambiare il tuo percorso nella riga 5 in qualsiasi posizione risieda il tuo file.
Pete, prova questo. Dopo aver eseguito la procedura guidata di importazione, sembra che ciò che ritorna, sebbene inutile a prima vista, sia sufficiente per continuare, almeno per il set di dati a portata di mano. Fammi sapere come va per te su questo (e idealmente, un altro) set di dati. Ho formulato ipotesi su come vengono restituiti i dati, che potrebbero non essere validi per altri dati.
Names Default To Here( 1 );
jsonFromWizardExpr = Expr(
dt = Open(
"/Users/brady.brady@jmp.com/Downloads/Morning_Run_.json",
JSON Settings(
Stack( 0 ),
Row( "/root/data/values" ),
Col(
"/root/data/values",
Column Name( "values" ),
Fill( "Use Once" ),
Type( "Numeric" ),
Format( {"Best"} ),
Modeling Type( "Continuous" )
),
Col(
"/root/data/fields",
Column Name( "fields" ),
Fill( "Use Once" ),
Type( "Character" ),
Format( {"Best"} ),
Modeling Type( "Continuous" )
)
),
JSON Wizard( 0 )
)
);
jsonFromWizardExpr;
//get nonempty rows in column 2. These follow the data having the fields indicated
{rowA, rowB} = As List( dt << get rows where( dt:fields != "" ) );
//main logic is here; note latlng needs to be split to lat, lng
colList = Words( Substitute( dt:fields[rowA], "latlng", "lat, lng" ), " ," );
As Table( Shape( dt[1 :: (rowA - 1), 1], (rowA - 1) / N Items( colList ) ), <<column names( colList ) );
colList = Words( dt:fields[rowB], ", " );
As Table( Shape( dt[((rowA) :: (rowB - 1)), 1], (rowB - rowA) / N Items( colList ) ), <<column names( colList ) );