파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
조합 분석이라는 것에 대해 자세히 알아보고 싶습니다. 이것은 규정된 규칙에 따라 집합의 요소를 선택하고 배열하는 것으로 정의할 수 있습니다. 난해하게 들릴지 모르지만 실제로는 매우 실용적인 사용 사례가 있습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
이 자습서에서는 LuckyTemplates에서 파워 쿼리를 사용하여 이 작업을 수행하는 방법을 보여 드리겠습니다.
목차
조합 분석 사례 사례
이 예제 조합 분석에서 작업은 6개의 창고 목록이 있고 3개의 고유한 세트를 모두 생성해야 한다는 것입니다. 매우 간단한 문제처럼 들리지만 이것은 언어가 정말로 중요한 경우 중 하나입니다.
여기서 정답은 216, 120, 56 또는 20입니다. 따라서 고유 집합을 정의하는 방법과 규정한 규칙에 따라 집합을 올바르게 가져오지 않으면 10배 차이가 날 수 있습니다.
여기에서 중요한 두 가지 차원이 있습니다. 첫 번째는 " 순서가 중요합니까 ?" 입니다. 그래서 우리가 3세트 3세트에 대해 이야기할 때 ABC는 BCA와 동일합니까? 그럼 순서가 중요한가요? 그리고 순서가 중요 하다면 순열 에 대해 이야기하는 것입니다 .
순서가 중요한 순열의 좋은 예는 이동 시간의 경우(창고 컨텍스트에 대해 이야기하고 있음)입니다. A창고, B창고, C창고를 차례로 방문한다면, 교통대체 교통의 흐름에 따른 이동시간, 즉 각 창고에 도착한 시간은 순서에 따라 상당히 다를 수 있다. 당신이 그들을 방문합니다.
반대 측면은 " 순서는 중요하지 않다 "는 점입니다. 이 경우 순열이 아니라 조합에 대해 이야기하고 있습니다 . 여기서 일반적인 사용 사례는 거리입니다. 예를 들어, 까마귀가 날아갈 때 A에서 B, C까지의 거리는 B에서 C, A까지의 거리와 다르지 않을 것입니다. 그것들은 조합 맥락에서 고려될 것입니다.
조합은 서로 중복된 것으로 간주됩니다. 반면 순열 컨텍스트에서는 고유한 것으로 간주됩니다.
보시다시피 조합 잠금은 실제로 순열 잠금이어야 합니다. 이 경우 순서가 중요하므로 조합이 아닌 순열이 됩니다.
중요한 두 번째 질문 또는 차원은 " 한 번 선택한 항목을 다시 선택할 수 있습니까 ?" 입니다. 예를 들어 첫 번째 창고로 A를 선택한 경우 A를 다시 선택할 수 있습니까, 아니면 매번 고유한 요소를 선택해야 합니까?
여기서 우리가 사용하는 용어는 " 대체 포함 " 또는 " 대체 제외 "입니다. 따라서 항목을 다시 선택할 수 있는 경우 교체가 있는 것입니다. 즉, 항목을 선택하는 것입니다. 그리고 어떤 의미에서는 다시 선택 저장소로 돌아가서 다시 선택됩니다. 대답이 '아니요'인 경우 교체가 없습니다.
따라서 이 솔루션에서 대체 순열이 가장 덜 제한적이라는 것을 알 수 있습니다. 이것이 216개의 고유 세트를 제공하는 것입니다. 그리고 대체가 없는 조합은 20을 제공하는 가장 제한적인 조합입니다.
파워 쿼리 결과 를 확인하는 방법으로 이 수식을 사용하겠습니다 . 따라서 216, 120, 56 및 20을 기억하겠습니다. 이제 파워 쿼리로 이동하여 이 조합 분석이 어떻게 진행되는지 살펴보겠습니다.
조합 분석: 파워 쿼리의 순열
파워 쿼리에는 6개의 명명된 웨어하우스가 있는 매우 간단한 사례가 있습니다.
그리고 조합과 순열을 처리하는 데 사용한 이 파워 쿼리 M 함수를 개발했습니다.
먼저 첫 번째 사용 사례를 개발할 것입니다. 이 사용 사례는 무리 중 가장 제한이 적은 replacement 를 사용한 순열 입니다. 파워 쿼리에서 이를 수행하는 방법은 이 Warehouses 테이블을 가져오고 참조하는 것입니다(DAX에서는 CROSSJOIN 사용 ).
나는 이것을 Per w Rep (교체를 통한 순열)라고 부를 것입니다.
파워 쿼리에서 교차 조인을 수행할 수 있는 여러 가지 방법이 있습니다. 내가 찾은 가장 쉬운 방법은 Add column 으로 이동 한 다음 Custom column 으로 이동하는 것입니다 . 사용자 정의 열 공식에서 Warehouses 테이블을 참조하십시오.
확인을 클릭하면 중첩 테이블이 생성된다는 것을 알 수 있습니다.
그런 다음 이를 확장하고 Use original columns name as a prefix 를 클릭 해제합니다 .
그리고 우리는 이 Location.1 을 얻습니다 . 이것은 두 가지의 가능한 모든 조합입니다. 따라서 다른 6개의 조합에 대해 처음 6개의 참조를 사용합니다. 두 번째 6개는 36개의 서로 다른 세트가 될 때까지 동일한 작업을 수행합니다.
이 작업을 다시 수행하여 세 번째 작업을 수행할 수 있습니다. 열 추가, 사용자 지정 열, 창고로 이동합니다.
그리고 우리는 교체를 통한 순열로 216개의 행을 가질 것입니다.
여기 아래에서 볼 수 있습니다. 3개의 열, 216개의 행.
다음 사용 사례는 교체가 없는 순열 입니다 . 여기서 우리가 생각하는 것은 기본적으로 반복되는 요소가 있는 모든 것입니다. 따라서 이 표에서는 1행부터 8행까지 살펴보겠습니다.
이를 위해 fxSortAndIsDistinct 함수를 살펴보겠습니다 .
Advanced Editor에서 이것이 기본적으로 테이블을 요청한 다음 SortLocs를 수행하는 것을 볼 수 있습니다 . 그러나 여기서 "대체 포함" 또는 "대체 안 함"에 대한 중요한 부분은 이것이 IsDistinct 함수라는 것입니다. 이것이 하는 일은 기본적으로 요소 목록을 가져오고 그것이 고유한지 또는 항목 목록에 중복이 있는지 여부에 따라 참 또는 거짓을 결정하는 것입니다.
여기로 이동하여 Perm w Rep 를 선택 하고 Invoke 를 누릅니다 .
이렇게 하면 SortLocs 및 IsDistinct라는 두 개의 새 열이 제공됩니다 . 이제 처음 8개의 레코드에 중복이 있었고 9번째 레코드가 처음으로 뚜렷한 . 그렇기 때문에 여기서 9번째 행이 참으로 나타나는 첫 번째 행입니다.
계승 계산에서 얻은 숫자를 다시 생각해 보면 구별되지 않는 레코드를 제거하면 120개의 레코드가 예상됩니다. 따라서 여기서 필터링을 시도하고 FALSE를 제거해 보겠습니다.
그렇게 하면 우리가 예상한 정확히 120개의 행을 얻게 됩니다. 이제 이것을 Perm wo Rep (교체 없는 순열) 로 이름을 바꾸겠습니다 .
조합 분석: 파워 쿼리의 조합
이제 교체를 사용하여 조합을 수행합니다 . 이를 위해 프로세스를 다시 수행하고 단계(호출된 함수)를 반복하기만 하면 됩니다. 따라서 중복이 있어도 괜찮지만 요소가 동일 하지만 순서가 다른 세트는 원하지 않습니다.
이 경우 조합에 대해 이야기할 때입니다. ABC와 BCA가 CAB와 같다는 것을 기억한다면 그것들은 모두 서로 중복된 것으로 간주됩니다. 그리고 이를 결정하는 방법은 Sort 함수( fxSortAndIsDistinct )를 사용하는 것입니다.
고급 편집기의 기능으로 돌아가면 해당 목록을 알파벳순으로 정렬한 두 번째 열을 볼 수 있습니다. 그런 다음 해당 목록에서 쉼표로 구분된 값을 추출했습니다. 이제 각 세트를 알파벳순으로 정렬했습니다. 중복을 쉽게 찾을 수 있도록 순서를 정규화했습니다.
이제 이 호출된 함수로 돌아가면 여기에서 56개의 레코드를 찾고 있음을 기억하십시오. 그래서 우리는 이러한 종류의 위치( SortLocs ) 를 가져와 중복 항목을 제거합니다 .
이를 통해 56개의 행을 얻습니다.
이것이 세 번째 사용 사례입니다. 이것을 CC w Rep (교체와 조합) 로 이름을 바꾸겠습니다 .
대체(Perm w Rep) 테이블이 있는 순열을 다시 가져와 동일한 패턴(invoke)을 수행하여 이 항목을 마무리하겠습니다. 그런 다음 중복 항목(SortLocs 열)을 제거 할 것입니다. 이는 조합이고 순서는 중요하지 않기 때문입니다. 교체가 없으므로 고유 목록만 필요합니다 . 따라서 IsDistinct 열에서 FALSE를 클릭합니다.
이것으로 우리는 20개의 레코드를 얻습니다. 이제 네 가지 사용 사례가 모두 있습니다.
LuckyTemplates에서 날짜 테이블 열 정렬
LuckyTemplates의 M 코드 초보자 가이드
LuckyTemplates에서 날짜 테이블 함수를 테이블 쿼리로 변환
결론
이제 네 가지 사용 사례가 모두 있습니다. 교체 및 개별 요소를 제어할 수 있는 조합 분석을 개발하는 측면에서 이것이 얼마나 강력한지 알 수 있습니다.
이것은 부분 교체가 있는 좀 더 복잡한 경우에도 적용할 수 있습니다. 여전히 파워 쿼리 내에서 훌륭하게 처리할 수 있습니다 .
도움이 되었기를 바랍니다. 자세한 내용은 아래 링크를 확인하세요. 아래에서 이 튜토리얼의 전체 비디오를 볼 수도 있습니다.
모두 제일 좋다!
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것