안녕하세요, 아래의 거래 데이터를 매트릭스로 변환하여 고객이 주문한 다른 날짜의 빈도를 계산하고 싶습니다.
기본적으로 2년 간의 거래 데이터를 기반으로 파악하려고 합니다. customerID가 구매한 날짜 수입니다.
예를 들어 고객 ID 17850은 빈도 아래 데이터 세트에서 1의 1입니다(거래 데이터에서 볼 수 있듯이 해당 날짜에 다른 항목을 구매했습니다).
TABULATE를 시도하고 있지만 단일 고객 ID 행과 빈도(고유 날짜 기준)를 찾는 방법을 잘 모르겠습니다.
표 결과의 예(ROWS가 아닌 고유한 날짜를 기반으로 함!):
추신: 트랜잭션 데이터와 함께 Excel을 첨부합니다.
| 청구서아니오 | 주식코드 | 설명 | 수량 | 송장 날짜 | 단가 | 고객 ID | 국가 |
| 536365 | 85123A | 화이트 행잉 하트 T-라이트 홀더 | 6 | 2010년 1월 12일 8시 26분 | 2.55 | 17850 | 영국 |
| 536365 | 71053 | 화이트 메탈 랜턴 | 6 | 2010년 1월 12일 8시 26분 | 3.39 | 17850 | 영국 |
| 536365 | 84406B | 크림 큐피드 하트 옷걸이 | 8 | 2010년 1월 12일 8시 26분 | 2.75 | 17850 | 영국 |
| 536365 | 84029G | 니트 유니온 플래그 온수 병 | 6 | 2010년 1월 12일 8시 26분 | 3.39 | 17850 | 영국 |
| 536365 | 84029E | RED WOOLLY 매력 화이트 하트. | 6 | 2010년 1월 12일 8시 26분 | 3.39 | 17850 | 영국 |
| 536365 | 22752 | 세트 7 BABUSHKA 중첩 상자 | 2 | 2010년 1월 12일 8시 26분 | 7.65 | 17850 | 영국 |
| 536365 | 21730 | 글라스 스타 반투명 T-라이트 홀더 | 6 | 2010년 1월 12일 8시 26분 | 4.25 | 17850 | 영국 |
| 536366 | 22633 | 핸드워머 유니온잭 | 6 | 2010년 1월 12일 8시 28분 | 1.85 | 17850 | 영국 |
| 536366 | 22632 | 핸드 워머 레드 폴카 도트 | 6 | 2010년 1월 12일 8시 28분 | 1.85 | 17850 | 영국 |
| 536367 | 84879 | 다양한 색상의 새 장식 | 32 | 2010년 1월 12일 8시 34분 | 1.69 | 13047 | 영국 |
| 536367 | 22745 | 포피의 플레이하우스 침실 | 6 | 2010년 1월 12일 8시 34분 | 2.1 | 13047 | 영국 |
| 536367 | 22748 | 포피의 플레이하우스 키친 | 6 | 2010년 1월 12일 8시 34분 | 2.1 | 13047 | 영국 |
| 536367 | 22749 | 펠트크래프트 샬롯 공주 인형 | 8 | 2010년 1월 12일 8시 34분 | 3.75 | 13047 | 영국 |
| 536367 | 22310 | 아이보리 니트 머그 COZY | 6 | 2010년 1월 12일 8시 34분 | 1.65 | 13047 | 영국 |
| 536367 | 84969 | 다양한 컬러 티스푼 6개 상자 | 6 | 2010년 1월 12일 8시 34분 | 4.25 | 13047 | 영국 |
| 536367 | 22623 | 빈티지 직소 블록 상자 | 삼 | 2010년 1월 12일 8시 34분 | 4.95 | 13047 | 영국 |
| 536367 | 22622 | 빈티지 알파벳 블록 상자 | 2 | 2010년 1월 12일 8시 34분 | 9.95 | 13047 | 영국 |
| 536367 | 21754 | 주택 건설 블록 단어 | 삼 | 2010년 1월 12일 8시 34분 | 5.95 | 13047 | 영국 |
| 536367 | 21755 | 사랑 빌딩 블록 단어 | 삼 | 2010년 1월 12일 8시 34분 | 5.95 | 13047 | 영국 |
| 536367 | 21777 | 메탈 하트가 있는 레시피 상자 | 4 | 2010년 1월 12일 8시 34분 | 7.95 | 13047 | 영국 |
| 536367 | 48187 | 도어매트 뉴잉글랜드 | 4 | 2010년 1월 12일 8시 34분 | 7.95 | 13047 | 영국 |
| 536368 | 22960 | 항아리로 잼 만들기 세트 | 6 | 2010년 1월 12일 8시 34분 | 4.25 | 13047 | 영국 |
| 536368 | 22913 | 레드 코트 랙 파리 패션 | 삼 | 2010년 1월 12일 8시 34분 | 4.95 | 13047 | 영국 |
| 536368 | 22912 | 노란색 옷걸이 파리 패션 | 삼 | 2010년 1월 12일 8시 34분 | 4.95 | 13047 | 영국 |
| 536368 | 22914 | 블루 코트 랙 파리 패션 | 삼 | 2010년 1월 12일 8시 34분 | 4.95 | 13047 | 영국 |
| 536369 | 21756 | 목욕 빌딩 블록 단어 | 삼 | 2010년 1월 12일 8시 35분 | 5.95 | 13047 | 영국 |
| 536370 | 22728 | 알람시계 빵빵한 핑크 | 24 | 2010년 1월 12일 8시 45분 | 3.75 | 12583 | 프랑스 |
| 536370 | 22727 | 알람 시계 베이커리크 레드 | 24 | 2010년 1월 12일 8시 45분 | 3.75 | 12583 | 프랑스 |
| 536370 | 22726 | 알람 시계 빵 같은 녹색 | 12 | 2010년 1월 12일 8시 45분 | 3.75 | 12583 | 프랑스 |
| 536370 | 21724 | 팬더와 토끼 스티커 시트 | 12 | 2010년 1월 12일 8시 45분 | 0.85 | 12583 | 프랑스 |
| 536370 | 21883 | 별 선물 테이프 | 24 | 2010년 1월 12일 8시 45분 | 0.65 | 12583 | 프랑스 |
이를 수행하는 다른 방법입니다.먼저 Jim이 말한 대로 고객 ID를 변경합니다(명목 또는 서수).현재 InvoiceDate를 Character Nominal 변수로 변경하여 새 날짜 열을 만듭니다.Left(Invoice Date,10)를 사용하여 날짜에 대한 새 열을 만듭니다. 이렇게 하면 시간이 사라집니다.그런 다음 고객 ID와 새 날짜 열(둘 다 행)이 있는 Tabulate를 사용합니다.빨간색 화살표에서 Make into Data Table을 선택합니다.
그런 다음 수식 열 번호(날짜, 고객 ID별)를 사용하여 새 열을 만듭니다.이것은 각 고객이 주문한 고유한 날짜 수를 제공합니다.
귀하의 질문에 대한 해결책은 매우 간단합니다.이 작업은 대화식으로 또는 스크립트로 쉽게 수행할 수 있습니다. 이러한 단계는 JMP 입문 설명서에 모두 나와 있습니다. 시간을 내어 읽어 보시기 바랍니다.사용 가능한 다양한 구성 요소에 대한 좋은 개요를 제공합니다.
도움말==>도서==>JMP 사용
인터렉티브:
1. JMP에서 Excel 파일 열기
파일==>열기
2. CustomerID는 숫자/연속 열로 열립니다.서수 값이어야 합니다.
3. InvoiceDate 열은 시간 부분도 표시되도록 형식화됩니다.InvoiceDate를 일 내의 시간이 아닌 별도의 일로 처리하려면 해당 열에 대한 열 정보를 열고 형식을 "d/m/y"로 변경하십시오.
4. CustomerID/InvoiceDate당 하나의 행으로 데이터를 요약하려면 다음을 실행합니다.
테이블==>요약
CustomerID와 InvoiceDate를 그룹 선택에 모두 넣고 확인을 클릭합니다.
5. 이제 CustomerID당 하나의 행으로 요약하려면 새로 생성된 테이블에 대해 요약 플랫폼을 다시 실행합니다.
테이블==>요약
CustomerID 열을 그룹 선택에 배치하고 확인을 클릭합니다.
결과 테이블에는 요청한 값이 있습니다.
아래 스크립트는 기본적으로 위의 단계를 대화식으로 실행한 다음 각 단계의 스크립트를 스크립트 창에 저장하여 생성되었습니다.아래 코드의 일부만 작성했습니다.JMP에서 생성했습니다.
names default to here(1);
// Open the Excel file
dt=Open(
// Change the below to the path to the Excel File
"<PATH to="" folder="">\Online Retail.xlsx");
// The CustomerID should not be treated as a continuous,
// analytical column of data, so
// Change CustomerID to an Ordinal Modeling Type
dt:CustomerID<<MODELING type="">Tabulate
// which will allow for the Calculation of the
// counts of the number of different InvoiceDates
dtSum1 << Tabulate(
Show Control Panel( 0 ),
Include missing for grouping columns( 1 ),
Add Table(
Column Table( Analysis Columns( :InvoiceDate ), Statistics( N ) ),
Row Table( Grouping Columns( :CustomerID ) )
)
);
// Or
// Run the Summary Platform again, but this time run it on
// the current Summarized data table to count the number of
// rows for each CustomerID
dtSum2 = dtSum1 << Summary(
Group( :CustomerID ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
// Now Clean up the N Rows name to # of Invoiced Days
dtSum2:N Rows << set name("# of Invoiced Days");</MODELING></PATH>