Strava에서 데이터를 가져 와서 JMP로 가져 왔습니다. 데이터는 첨부 된 것과 같은 JSON 형식입니다.이 시점에서 다중 시리즈 스태킹 삭제 열 및 많은 데이터 조작과 관련하여 약간의 고통스러운 프로세스입니다. 첨부 한 두 개의 테이블로 마무리하고 싶습니다. 문제를 일으키는 JSON 파싱에 대한 지식이 부족하기를 바랍니다. 누구나 볼 기회가 있다면 프로세스를 덜 고통스럽게 만드는 것에 대한 아이디어를 얻을 것입니다.
**** 편집 : 5 행의 경로를 파일이있는 곳으로 변경하십시오.
피트, 시도 해봐 가져 오기 마법사를 실행 한 후 처음에는 플러시 할 때는 쓸모는 없지만 최소한 데이터 세트에 대해서는 계속 진행하는 것으로 충분합니다. 이 데이터 집합 (이상적으로는 다른 데이터 집합)에서 어떻게 진행되는지 알려주십시오. 데이터가 어떻게 돌아 오는지에 대해 가정했으며 다른 데이터에는 유효하지 않을 수 있습니다.
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 ) );