J'ai extrait des données de Strava et les ai importées dans JMP. Les données sont dans un format JSON comme celui ci-joint. C'est un processus un peu pénible à ce stade pour moi, impliquant un empilement de plusieurs séries, la suppression de colonnes et beaucoup de manœuvres de données. Je voudrais terminer avec les deux tableaux que j'ai joints. J'espère que c'est juste mon manque de connaissances avec l'analyse JSON qui cause le problème. Si quelqu'un a la chance de jeter un coup d'œil, j'apprécierais toute idée pour rendre le processus moins douloureux.
**** EDIT: assurez-vous de modifier votre chemin d'accès à la ligne 5 à l'endroit où réside votre fichier.
Pete, essayez ça. Après avoir exécuté l'assistant d'importation, il semble que ce qui revient, bien qu'inutile au premier abord, soit suffisant pour continuer, au moins pour l'ensemble de données à portée de main. Faites-moi savoir comment cela se passe pour vous sur cet ensemble de données (et, idéalement, un autre). J'ai émis des hypothèses sur la façon dont les données sont renvoyées, qui peuvent être invalides pour d'autres données.
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 ) );