In my previous blog post, I shared how I created a table of workout information in JMP and summarized my workout patterns in 2014. To drill down into more detailed summaries of my data at the exercise level, I first had to clean up my data table with the JMP 12 Recode platform. You can read more in the recent post by John Sall and an earlier post by Recode developer James Preiss about JMP 12 Recode platform updates like an improved user interface for manual grouping, automatic grouping of items by edit distance, and scripting improvements. I've also posted about how useful Recode was for cleaning up my food log data.
When I graphed my weight training data at the exercise level, I realized that I had referred to the same exercises by different names over the years. These naming inconsistencies were largely due to differences in exercise names used by various workout programs I had followed, but I also noted spelling mistakes and word order differences among the exercise named used in my data table. I needed to group duplicate names and choose a single representative value before I could efficiently summarize my data at the exercise level and compare exercise patterns over time.
Fortunately, the new grouping and filtering features of the JMP 12 Recode platform made my data cleanup process straightforward. Below is an example where I had used various different names for the same back exercises across workouts. I used control-click to select the various names used for different exercises and right-clicked to group them manually, then modified the group name. While consolidating exercise names, I modified many of their names to begin with type of equipment used (e.g., band, cable, DB for dumbbell, BB for barbell). This helped sort exercises using similar equipment together in graphs and tables.
My next step was to use Recode to group my cleaned exercise names by the primary body part each one worked. Again, I used shift-click and control-click to choose exercises and right-clicked to group them, assigning group names corresponding to primary body parts like Chest, Back, and Shoulders. Although many weight training exercises work more than one body part, I found that assigning a primary body part was ideal for filtering my data. I'll go into more detail on that topic in later posts.
I also grouped primary body parts into body zones (Upper Body, Lower Body, Core) as shown below. I grouped individual workout names into workout programs. Since I had repeated several workout programs, I created a character formula column called Unique Workout ID that concatenated the workout name and date for each session.
I saved scripts for my various cleanup tasks as separate JSL files using the new Recode red triangle menu option Script > Save to File. Similarly, when I had new data to process, I used Script > Import from File to reload each saved script containing the groupings I had already created. I then modified the script to accommodate my new data, saved it, and applied the changes in a new column.
Classifying my exercises and workouts at these various levels provided me a wide variety of options for filtering and summarizing my data. In my next blog post, I'll describe how I used Local Data Filter to examine my workout data summarized at the body zone level.