나는 끝났다. 내 이전 블로그 게시물 내 JMP Discovery Summit 프로젝트에서 BodyMedia® Activity Manager 앱으로 수집 한 거의 4 년 동안의 식량 로그에서 식품 항목 이름 중복성의 정도를 깨달았습니다. 특정 음식에 대해 다르게 준비된 품종을 섭취했다는 것을 알고 있었지만 복제는 키워드 검색을 사용하여 음식 로그에 추가 할 올바른 항목을 찾는 데 사용 된 인공물이었습니다. 특정 항목을 검색하는 데 사용 된 키워드가 다양하고 특정 식사에 기록하도록 선택한 항목이 다양하기 때문에 비슷한 음식에 대해 다른 항목 이름을 자주 선택했습니다.
궁극적으로, 나는 관련 품목에서 섭취 한 칼로리 수를 요약하고 음식 카테고리별로 섭취하는 칼로리를 합산하려고했다. 합리적인 첫 번째 단계는 내 데이터 테이블에서 중복되는 식품 항목 이름의 수를 줄이는 것이 었습니다. 나는 최소한의 작업으로 새로운 데이터를 처리 할 수 있도록 스크립트를 통해 재현 할 수있는 식품 품목 기록 프로세스를 가능한 한 쉽게 수행하기를 원했습니다.
나는 JMP 11 유사한 식품 항목 이름을 하나의 정리 된 값으로 통합하기 위해 플랫폼을 다시 코딩하십시오. 기록을 시작하기 전에 데이터 표에 1,859 개의 독특한 식품 항목 이름이 포함되었습니다. 음식 품목 이름이 알파벳 순으로 레코딩 창에 표시되었으므로 알파벳순으로 나열되지 않은 유사한 식품 항목을 찾는 것이 어려웠습니다. 예를 들어, 다른 브랜드 이름으로 나열된 거의 동일한 항목의 이름을 바꾸려면 항목 목록 전체에 흩어져있는 관련 항목을 모두 찾아야했습니다 (예 : "CHIPS AHOY! Chewy Chocolate Chip Cookies", "Cookie, Chocolate Chip, 상업용, 12 % -17 % 팻 ","제이슨 델리 초콜릿 칩 쿠키 ","파이슬리 초콜릿 칩 쿠키, 냉장 된 반죽 ")를 공통된 청소 값 (예 :"쿠키, 초콜릿 칩 ")으로 바꿉니다. 관련된 모든 항목을 찾으려면 찾기 기능을 사용하여 데이터 테이블을 검색하거나 데이터 필터 빨간색 삼각형 메뉴 아래에서 찾기를 사용했습니다.

일단 관련된 모든 항목을 찾으면 Recode 창에서 해당 위치로 스크롤하여 정리 된 항목 이름을 붙여 넣었습니다. 어느 시점에서 데이터 세트를 작업하면서 우연히 변경 사항을 저장하지 않고 Recode 창을 닫았습니다. 내 작업을 반복하는 대신, 필자는 내가 선택한 항목을 더 빠르고 쉽게 분류하여 식품 그룹에 새 항목을 할당 할 수있게 해주는 대체 전략을 탐색하기로 결정했습니다.
필자는 JMP 카테고리 플랫폼 실행 대화 상자의 다중 탭에있는 Free Text 기능을 사용하여 음식 항목 이름에서 고유 단어 목록을 추출했습니다. 나는 목록을 검토하여 공통 또는 비 특정 단어를 제거하고 나머지 단어를 식품 카테고리에 포함 시켰습니다. 그런 다음 JSL 루프를 사용하여 JMP에서 PatMatch 함수를 사용하여 음식 항목 이름에서 이러한 키워드를 검색했습니다. 키워드를 찾은 경우 다중 응답 열 속성을 사용하여 저장된 열의 쉼표로 구분 된 목록에 단어 카테고리를 추가했습니다.
처음에는이 방법을 사용하면 새 항목을 분류하는 것이 더 간단 해졌지만 모든 스크립트에서 모든 키워드를 검색하는 것은 시간이 많이 걸리는 것으로 나타났습니다. 분류 된 식품 항목을 모두 검토하고 포함 된 키워드를 기반으로 합리적인 범주에 포함되었는지 확인하는 데 더 오래 걸렸습니다. 처리 된 표를 검토 한 결과 많은 비 특정 키워드 일치를주의해야했습니다. 한 예를 들어, "바다 청크 가벼운 참치의 닭"은 육류 (키워드 : 닭고기)와 생선 (키워드 : 생선) 식품 카테고리 모두를 충족 시켰습니다. Coffeemate 비 유제품 크리머에는 키워드 커피가 포함되어있어 CoffeeMilk 그룹에 잘못 지정되었습니다. 패턴 일치 전에 원래 이름 중 일부를 수정하고 일치 후 다른 카테고리 목록을 정리해야한다는 것을 알았습니다. 스크립팅을 통해 각 단계를 재현해야하므로 사용자 정의 JSL을 작성하거나 Recode로 JSL을 정리하는 데이터를 생성해야합니다. 따라서 원래의 Recode 전략으로 돌아 가기로했습니다.
그 당시에 새로 고용 된 JMP 개발자 인 James Preiss는 JMP 12의 Recode를 개편하기 시작했습니다. James와 여러 가지 문제점에 대한 Recode 유스 케이스를 이미 할 일 목록에있는 고객 요청과 함께 정리했습니다. Recode에 대한 업데이트가 JMP 12 일일 빌드에서 표면에 나타나 자마자 제 음식 로그 파일을 사용하여 테스트하고 James 및 Recode 테스터 인 Rosemary Lucas와 내 아이템 목록의 일부를 공유했습니다. Recode, Data Filter, Find / Replace 및 JSL 스크립팅을 JMP 11에서 수동으로 수행 한 많은 단계가 JMP 12의 Recode에 통합되어 있음을 알게되어 기뻤습니다.
사실 Recode 플랫폼 업데이트가 완료되기 훨씬 전에 필자는 키워드 매칭 문제를 스크립트로 작성하는 것보다 훨씬 적은 시간으로 음식 목록에서 정리되고 그룹화 된 항목 이름 테이블을 만들 수있었습니다. 그런 다음 각 청소 된 식품 항목 이름에 대한 카테고리를 추가하고 원래의 항목 이름에 가입하여 음식 로그 데이터 테이블에 병합했습니다. Recode를 사용하여 원래 테이블의 고유 이름 수를 절반으로 줄였습니다 (1,859). 이제 새로운 음식 로그 파일을 가져올 때 Recode로 간단히 돌아가서 새 항목을 분류하고 항목 이름 / 카테고리 테이블을 업데이트 한 다음 데이터를 병합하고 진행할 준비가되었습니다.
JMP 12는 2015 년 3 월까지 출시되지 않으므로 Recode 플랫폼의 많은 새로운 기능에 대해 애매하게 말하고 있음을 인정합니다. Recode 업데이트가 너무 마음에 듭니다. (Recode에 대한 자세한 블로그 게시물은 March 접근 방식과 소프트웨어를 사용할 수있게 된 후에 찾아보십시오.)
다음 블로그 게시물에서 디스커버리 서밋 포스터를 위해 만든 그래프 중 일부를 소개하고 잔 그레그 JMP에서 Graph Builder 플랫폼의 작성자이자 데이터 검색 그룹의 리더입니다.
내 포스터에 대한 더 많은 배경 지식과 수량화 된 자체 (QS) 데이터 분석에 대한 관심 사항은 첫 번째 블로그 게시물 이 시리즈에서. 후속 게시물은 내가 어떻게 Excel 형식의 활동 요약 파일을 내 보냈습니다. 과 식품 로그 파일 BodyMedia® Activity Manager 소프트웨어에서 가져 와서 JMP로 가져 왔습니다. 저는 사용자 정의 JSL 스크립트를 사용하여 1 개의 테이블에 1,316 행의 활동 데이터가있는 테이블과 34,432 행의 식품 항목을 거의 4 년 동안 기록했습니다. 나는 JMP를 썼다. 추가 기능 무료 MyFitnessPal 웹 사이트에서 이러한 데이터 유형 및 CSV 형식의 음식 로그 파일을 지원합니다.