니가 내 마지막 게시물 , 당신은 내가 이번 휴가철에 데이터의 선물을 나에게주고 있다는 것을 알게됩니다! 나를 위해, 나의식이 요법과 운동 습관에 관한 자료를 수집하는 것은 단지 계속주는 선물이다. 일상적으로 모든 데이터 세트를 볼 수는 없지만 정보를 사용하면 패턴을 이해하는 데 도움이됩니다.
그러나 음식 데이터를 수집하는 것은 단지 내게 휴일 습관이 아닙니다. 나는 연중 매 식사마다 거의 5 년 동안 먹는 음식을 기록해 왔으며 올해 초 MyFitnessPal을 채택하기 전에 BodyMedia의 앱을 사용했다. 나는 선물했다. JMP Discovery 2014의 포스터 , 내가 어떻게 설명했는지 내 BodyMedia 식품 로그 데이터를 JMP로 가져 왔습니다. 텍스트에 여러 pdfs를 저장하고, 연결하고, 정규 표현식을 사용하여 JMP 테이블의 열을 세부적으로 파싱합니다. MyFitnessPal은 단일 텍스트 파일로 저장할 수있는 보고서 출력을 생성하여 몇 단계 만 남겨 줬지만 정규식 파싱을 사용하여 유용한 JMP 테이블을 만들어야했습니다.

나는 BodyMedia와 MyFitnessPal Food 로그에서 파생 된 텍스트를 평행하지만 별도의 프로세스를 사용하여 처리했습니다.이 프로세스는 맨 마지막에 단일 통합 테이블로 수렴됩니다.
큰 도전 : 두 소스의 데이터 결합
최근에 해결 된 주요 과제는이 두 가지 음식 로그 데이터 테이블을 통일하는 것이 었습니다.이 문제를 해결 한 경험은 여러 소스의 데이터를 결합해야하는 모든 사람에게 적합합니다.
열 이름과 형식 유형과 같은 사소한 차이점은 조정하기 쉽고 각 테이블에 몇 개의 고유 한 열이 포함되어 있어도 값이없는 행의 값이 누락 된 경우에만 적용됩니다. 가장 큰 문제점은 두 데이터베이스에서 항목 이름이 같아서 병렬이지만 별도의 프로세스를 사용하여 두 테이블을 정리해야하는 경우가 거의 없었습니다.
나는 이미 BodyMedia Food 로그에 본질적으로 동일한 식품 항목을 참조하는 중복 된 이름의 인스턴스가 많이 포함되어있어 패턴을 찾기 위해 해당 항목에서 데이터를 집계하는 것이 훨씬 어려워졌습니다. 비슷한 항목 이름을 정리 된 항목 이름 집합으로 그룹화하기 위해 JMP 12 Recode 플랫폼을 사용했습니다. 이전 블로그 게시물에서이 프로세스를 설명했습니다. .
MyFitnessPal에는 BodyMedia보다 더 많은 브랜드 이름과 사용자 제공 항목이 포함되어있어 이러한 이름 지정 중복 문제를 더욱 부각시킵니다. MyFitnessPal을 사용하여 음식을 기록 할 때 MyFitnessPal 항목 이름을 다시 코딩하기 위해 BodyMedia 스크립트를 재사용하려고했습니다. 그러나 데이터베이스 간의 공유 항목 이름이 거의 없기 때문에 MyFitnessPal 프로젝트에 대해 완전히 별도의 Recode 스크립트를 만드는 것이 더 합리적입니다.
식품 이름 통합
이제 두 개의 데이터 테이블을 결합하여 휴일 먹는 패턴을 검사하려는 바램이 두 테이블에서 정리 된 항목 이름을 가져 와서 단일 항목 집합의 통합 된 집합으로 결합하는 가장 효율적인 방법을 발견하는 좋은 동기가되었습니다. 물론, 연습이 끝났을 때, 나는 다시 Recode 스크립트를 저장할 수 있기를 원했다. 기발한 항목 이름을 사용하여 MyFitnessPal 로그에 새 항목을 추가 할 때 해당 스크립트를 계속 업데이트 할 수 있습니다.
일관성을 위해 열 이름과 형식을 조정 한 후 테이블을 연결하고 정리 된 항목 이름 열을 선택한 다음 Recode 플랫폼을 열었습니다. 두 테이블에서 비슷한 패턴을 사용하여 항목의 이름을 변경했기 때문에 많은 항목이 서로 가까이에 나타났습니다. 비슷한 항목을 그룹화하고 Recode 필터 필드를 많이 사용하여 관련 항목의 하위 그룹을 찾은 나머지 항목을 살펴 보았습니다. 정리 된 항목 이름의 전체 집합을 통합 된 항목 이름이라는 새 열로 다시 작성했습니다.

내 두 음식 로그 데이터 표에서 유사한 항목 이름을 통합했습니다.
새로운 MyFitnessPal 데이터와 함께 사용하기 위해 대화 상자에 다시로드 할 수있는 Recode 스크립트를 저장하려면 이전 블로그 게시물에서 공유 한 수식 열 트릭. 스크립트를 대화 상자에 저장하고 다시로드하기 전에 JMP 12 플랫폼의 초기 버전에서 수행 한 작업을 캡처하기 위해 "사실 이후"의 Recode 스크립트를 만들어야 할 때 발견 한 트릭입니다. 이제, Concat 함수의 문자를 사용하는 동일한 수식 열 접근법을 사용하여 원본 데이터베이스 항목 이름을 최종 통합 이름과 연결하는 Recode 스크립트의 "내장"을 만듭니다. 스크립트에 적절한 머리글과 바닥 글을 추가 한 후 MyFitnessPal에서 새 식품 항목 이름을 가져올 때 원본 항목 이름과 통합 이름을 Recode 대화 상자에 다시로드하고 목록을 업데이트 할 수 있습니다.
상위 레벨 카테고리 지정
필자가 정리하고 완성한 데이터 테이블을 사용하여 필자가 유지 관리하는 두 번째 데이터 정리 스크립트를 업데이트하여 기본 식품 범주에 식품 항목을 할당 할 수있었습니다. 나는 개별 아이템을 상위 레벨 카테고리에 배치하는 것이 시간이 지남에 따라 관련 아이템 세트를 비교하는 데 매우 유용 할 수 있다는 것을 발견했다. 나는 나에게 맞는 그룹핑을 사용하여 자신의 분류 시스템을 만들었습니다.
예를 들어, 나는 초콜렛 캔디라고 불리는 음식 카테고리를 가지고 있는데, 여기에는 진한 우유와 화이트 초콜릿이 들어 있습니다. 나는 거의 비 초콜릿 캔디 타입을 먹지 않으므로 카테고리를 캔디와 같은보다 일반적인 이름으로 쓰면 나에게 도움이되지 못한다. 시간이 지남에 따라 주요 트렌드를 볼 때, 나는 그것이 내가 먹은 밀크 초콜릿 또는 다크 초콜렛 트뤼플인지에 관해서는 머리카락을 나눌 생각이 없지만, 내 치료 칼로리가 어느 정도인지를 결정할 수 있기를 바란다. 전체 카테고리.
이 블로그 게시물에서 나는 지난 5 년 동안 선택한 공휴일 중 일부 휴일 만 식사를 포함하는 하위 집합 테이블을 만들었습니다. Recode를 사용하여 선택한 날짜를 Holiday라는 새 범주 열로 집계하고 Value Ordering 열 속성을 추가하여 이러한 휴일을 새해, 생일, 추수 감사절, 크리스마스 이브, 크리스마스 및 새해 순으로 순서대로 고정합니다. 이브.
이 그래프 빌더 히트 맵은 각 휴일에 기록 된 칼로리의 수를 보여줍니다. 내가 아기를 먹을 때 적극적으로 체중 감량을 할 때, 나는 덜 먹었고, 유지 관리에서는 더 많이 먹는 경향이있다.

이 그래프 빌더 히트 맵은 내가 휴일로 먹은 칼로리의 양이 1396 (밝은 노란색)에서 낮은 3580 (진한 빨간색)까지 다양하다는 것을 보여줍니다. 음식 로그 데이터가없는 날은 흰색 사각형으로 표시됩니다.
이전에는 공유했습니다. 내 음식 로그 데이터의 트리 맵 시각화 몇 일, 몇 주, 몇 달 또는 몇 년에 걸쳐 집계되었지만 일별 데이터의 패턴을 압축 방식으로 시각화하는 데에도 유용한 트리 맵을 찾을 수 있습니다. 그래프 빌더에 트리 맵을 만들어 4 년 동안 각 휴일에 대한 칼로리 붕괴를 보여주었습니다. 여기에서 여섯 가지 휴일 모두에 대한 완전한 데이터를 얻었습니다.
이 모든 데이터는 BodyMedia 앱에서 수집되었습니다.이 앱은 조식, AM 스낵, 점심 식사, 오후 스낵, 저녁 식사 및 늦은 스낵을 기록 할 수있는 여섯 가지 슬롯을 제공합니다. Year는 X 그룹 변수로, Holiday는 Y 그룹 변수로, 컬러 사각형은 식사로 사용했습니다. 칼로리를 Y 변수로 지정 했으므로 트리 메프의 각 휴일 섹션은 내가 사용한 총 칼로리 중 가장 많은 수에 비례하여 크기가 결정됩니다. 2012 년 크리스마스에 볼 수 있습니다.
식사 대 총 일일 칼로리
음식을 먹을 때 식사 시간에 음식을 기록합니다. 예를 들어, 늦은 아침이나 점심은 스낵 슬롯에 기록됩니다. 나의 휴일 식사 중 일부의시기에이 효과를 볼 수 있습니다. 휴일이 아닌 날에는 보통 아침과 점심과 저녁 식사를 아침과 오후에 간식이 적은 대형 식사로 기록합니다. 주요 공휴일에는 오후의 간식 시간대 (예 : 크리스마스 2012, 신년 이브 2011 및 2014)에 큰 식사가 포함되는 경우가 있습니다. 그 경우, 나는 저녁 시간대에 보통 상당한 디저트를 기록했습니다!

식사로 기록 된 칼로리는 큰 휴일 식사의시기에 달렸습니다.
식사 시간의 변동성을 감안할 때 식사 그룹 변수를 삭제하고 총 일일 칼로리 음식 카테고리별로 그룹화. 비슷한 항목을 그룹화하면 내 휴일 먹는 것을 지배하는 경향이있는 음식 유형에 대해 더 나은 느낌을 갖게되었습니다. 많은 디저트, 초콜릿 및 칼로리 음료가 포함 된 것은 전혀 놀라운 일이 아닙니다. 휴일은 나와 저의 가족을위한 사회적인 식습관입니다.

디저트 열량은 나의 휴일 먹는 본을 확실히 지배한다!
그 특별한 휴일 취급
많은 사람들처럼, 나는 특별한 특별한 명절 음식을 고대합니다. 내 전체 데이터 세트를 살펴보고 휴일 전용 아이템의 패턴을 내가 더 자주 먹는 음식과 대조하는 것이 흥미로울 것이라고 생각했습니다. 예를 들어, 치즈 케이크는 내가 가장 좋아하는 디저트 중 하나이며 일년 내내 일반 치즈 케이크를 먹습니다. 아래 막대 그래프는 몇 가지 식품 품목을 선택하여 필터링 한 월별 칼로리 총계를 보여줍니다. 대조적으로, 호박 치즈 케이크는 제철 음식으로, 보통 연휴에만 국한됩니다. 즉, 작년처럼 냉장고에 여분의 것을 넣지 않는 한! 또한 크랜베리 딜라이트 (Cranberry Delight)라고 불리는 요리는 추수 감사절과 크리스마스 사이의 식사 기록에는 2013 년 부활절 저녁 식사 때만 나타납니다.

호박 치즈 케이크와 크렌베리 기쁨은 평범한 치즈 케이크와 비교하여 희귀 한 휴가철 음식입니다!
그래서이 블로그 게시물의 가장 큰 도전은 무엇입니까? 데이터 수집, 레코딩 문제 또는 최상의 시각적 조명으로 내 휴가 먹는 패턴을 보여주기 위해 시각화를 조정할 것이라고 생각할 수도 있지만, 모든 추측은 잘못되었습니다. 사실, 가장 힘든 과제는 많은 JMP 13 업데이트를 남겨두고 JMP 12.2로 돌아가서 그래프를 만드는 것입니다. 사실, 올해 하반기에는 생산성이 떨어지는 블로거를 만들기 위해 JMP 13의 지속적인 개발을 비난합니다. 저는 거의 모든 일과 개인 프로젝트에서 JMP 13의 개발 버전을 거의 1 년 동안 사용해 왔습니다. 나는 지금 당신의 모든 새로운 놀라운 기능에 관해 당신에게 이야기하고 싶어하는 말 그대로 내 혀를 물고 있습니다! JMP 13이 출시되기 전까지는 내가 살 수없는 새롭고 개선 된 추가 사항에 대해 듣기 전까지는 참을성이 있습니다. 그 사이에, 행복한 휴일!