Труба в R: підключення функцій за допомогою Dplyr
У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.
Я хочу глибоко зануритися в те, що називається комбінаторним аналізом. Це можна визначити як вибір і розташування елементів множин відповідно до встановлених правил. Це може здатися езотеричним, але насправді є кілька дуже практичних випадків використання. Ви можете переглянути повне відео цього підручника внизу цього блогу.
У цьому підручнику я покажу вам, як це зробити за допомогою Power Query у LuckyTemplates.
Зміст
Приклад комбінаторного аналізу
У цьому прикладі комбінаторного аналізу завдання полягало в тому, що ми мали список із шести складів, і нам потрібно було згенерувати кожен унікальний набір із трьох. Звучить як досить проста проблема, але це один із тих випадків, коли мова дійсно має значення.
Правильна відповідь тут: 216, 120, 56 або 20. Отже, залежно від того, як ви визначаєте цей унікальний набір і встановлених вами правил, ви можете відхилитися в 10 разів, якщо ви не отримаєте набір правильно.
Отже, тут є два виміри, які мають значення. Перше: « чи порядок має значення ?» Отже, коли ми говоримо про три набори з трьох, чи ABC еквівалентно BCA? То чи порядок має значення? І якщо порядок має значення , ми говоримо про перестановки .
Хорошим прикладом перестановок, де порядок може мати значення, є (ми говоримо про контекст складу) у випадку часу в дорозі. Цілком можливо, що якщо ви відвідаєте склад A, потім склад B, а потім склад C, час у дорозі через потік транспорту з рухом проти руху, час, коли ви прибули до кожного складу, може бути досить різним залежно від замовлення. в якому ви їх відвідуєте.
Зворотний бік цього полягає в тому, що « порядок не має значення », і в цьому випадку ми говоримо про комбінації , а не про перестановки. Тут загальним варіантом використання є відстань. Наприклад, по прямій відстань від A до B до C нічим не відрізнятиметься від відстані від B до C до A. Їх розглядатимуть у контексті комбінації.
Комбінації вважаються дублікатами одна одної. Тоді як у контексті перестановки вони вважатимуться унікальними.
Отже, як ви бачите, кодовий замок насправді має бути блокуванням перестановки, тому що в цьому випадку порядок має значення, що робить його перестановкою, а не комбінацією.
Друге важливе запитання чи параметр: « коли предмет вибрано, чи можна його вибрати знову ?» Наприклад, якщо ми виберемо A як наш перший склад, чи можемо ми вибрати A ще раз, чи нам потрібно кожного разу вибирати унікальні елементи?
Тут ми використовуємо термін « із заміною » або « без заміни ». Отже, якщо предмет можна вибрати знову, це відбувається із заміною, тобто ви вибираєте його. І в певному сенсі він повертається в кошик для вибору, щоб бути вибраним знову. Якщо відповідь «ні», це без заміни.
Отже, ви можете побачити в цьому рішенні, що перестановки із заміною є найменш обмеженими. Тож це той, який дає нам 216 унікальних наборів. А комбінації без заміни є найбільш обмеженими, тобто 20.
Ми просто збираємося використовувати ці формули як спосіб перевірити наші результати. Отже, ми запам’ятаємо 216, 120, 56 і 20. Тепер перейдемо до Power Query і подивимось, як цей комбінаторний аналіз працює.
Комбінаторний аналіз: перестановки в Power Query
У Power Query я маю тут дуже простий випадок із шістьма названими складами.
І я розробив цю функцію Power Query M, яку використовував для обробки комбінацій і перестановок.
По-перше, я збираюся розробити той перший варіант використання, який є перестановками із заміною , найменш обмежувал��ним із групи. Спосіб зробити це в Power Query — взяти цю таблицю Warehouses і посилатися на неї (у DAX ми використовуємо CROSSJOIN ).
Я назву це Per w Rep (перестановки із заміною).
У Power Query існує кілька способів перехресного з’єднання. Найпростіший спосіб, який я знайшов, це просто перейти «Додати стовпець» , а потім «Налаштувати стовпець» . У формулі спеціального стовпця зверніться до таблиці Склади .
І що ми побачимо, коли ми натиснемо OK, це те, що він генерує вкладену таблицю.
Потім ми розгортаємо його та знімаємо клацання Використовувати оригінальні назви стовпців як префікс .
І ми отримуємо Location.1 , що є будь-якою можливою комбінацією двох. Отже, перші шість посилань порівнюються з іншими шістьма комбінаціями. Друга шість робить те ж саме, поки ми не отримаємо 36 різних наборів.
Ми можемо зробити третій, зробивши це ще раз. Отже, ми переходимо до стовпця «Додати», потім до спеціального стовпця, а потім до «Складів».
І ми матимемо 216 рядків як перестановки з заміною.
І ви можете побачити звідси, 3 стовпці, 216 рядків.
Наступний варіант використання - перестановки без заміни . Те, про що ми тут думаємо, це в основному все, що має повторюваний елемент. Отже, у цій таблиці ми розглянемо рядок 1 до рядка 8.
Для цього ми розглянемо функцію fxSortAndIsDistinct .
У розширеному редакторі ви бачите, що в основному запитується таблиця, а потім виконується SortLocs . Але важливою частиною для «із заміною» або «без заміни» є те, що це функція IsDistinct . Це просто бере список елементів і визначає істинний або хибний, чи є він окремим, чи має дублікати в списку елементів.
Отже, переходимо сюди, вибираємо Perm w Rep і натискаємо Invoke .
Це дасть нам ці два нові стовпці, SortLocs і IsDistinct . Тепер пам’ятайте, що перші вісім записів мали дублікати, а дев’ятий запис був першим випадком, коли ми побачили відмінний . Ось чому дев'ятий рядок тут є першим, який виявляється істинним.
Якщо ми повернемося до чисел, які ми отримали під час розрахунків факторіалу, ми очікуємо 120 записів, якщо вилучити нерозрізнені записи. Отже, давайте спробуємо відфільтрувати тут і видалити FALSE.
Зробивши це, ми отримаємо саме ті 120 рядків, які ми очікуємо. Тепер давайте перейменуємо це на Perm wo Rep (перестановка без заміни).
Комбінаторний аналіз: комбінації в Power Query
Тепер ми зробимо комбінації з заміною . Для цього ми просто виконуємо процес ще раз і повторюємо крок (викликана функція). Тож це нормально, що ми маємо дублікати, але ми не хочемо, щоб набори мали однакові елементи , але в іншому порядку.
У цьому випадку, коли ми говоримо про комбінації. Якщо ви пам’ятаєте, що ABC дорівнює BCA дорівнює CAB, усі вони вважаються дублікатами один одного. Ми визначаємо це за допомогою функції Sort ( fxSortAndIsDistinct ).
Якщо ми повернемося до функції в розширеному редакторі, ми побачимо для другого стовпця, що ми взяли цей список і відсортували його за алфавітом. Потім ми витягли значення, розділені комами, із цього списку. Тепер кожен набір відсортовано за алфавітом. Ми нормалізували порядок, щоб полегшити пошук дублікатів.
Тепер, якщо ми повернемося до цієї викликаної функції, пам’ятайте, що ми шукаємо тут 56 записів. Отже, ми беремо таке розташування ( SortLocs ) і видаляємо наші дублікати .
Таким чином, ми отримуємо 56 рядів.
Отже, це наш третій варіант використання. Перейменуємо це на CC w Rep (комбінації із заміною).
Давайте закінчимо це, знову взявши цю таблицю перестановок із заміною (Perm w Rep) і виконавши той самий шаблон (викликати). Потім ми видалимо дублікати (стовпець SortLocs), оскільки це комбінація, і порядок не має значення. Це без заміни, тому нам також потрібен лише окремий список . Отже, ми клацаємо FALSE у стовпці IsDistinct.
Таким чином ми отримуємо 20 записів. І тепер у нас є всі чотири варіанти використання.
Висновок
Тож тепер ми маємо всі чотири варіанти використання. Ви можете побачити, наскільки це потужно з точки зору розробки комбінаторного аналізу, який дає вам контроль над заміною та різними елементами.
Це навіть застосовно в деяких більш складних випадках, коли у вас є часткова заміна, або, можливо, вибрано дублікат елемента для першого, але не другого разу. Ви все ще можете впоратися з цим добре всередині.
Сподіваюся, ви знайшли це корисним. Перегляньте посилання нижче, щоб отримати більше вмісту. Ви також можете переглянути повне відео цього уроку нижче.
Все найкраще!
У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.
RANKX від LuckyTemplates дозволяє повернути рейтинг певного числа в кожному рядку таблиці, який є частиною списку чисел.
Дізнайтеся, як розібрати файл PBIX, щоб витягти теми та зображення LuckyTemplates із фону та використовувати їх для створення звіту!
Шпаргалка формул Excel: Посібник середнього рівня
Календарна таблиця LuckyTemplates: що це таке та як ним користуватися
Дізнайтеся, як інсталювати мову програмування Python у LuckyTemplates і як використовувати її інструменти для написання кодів і відображення візуальних елементів.
Дізнайтеся, як обчислювати динамічну маржу прибутку за допомогою LuckyTemplates і як ви можете отримати більше інформації, глибше досліджуючи результати.
Дізнайтеся, як правильно сортувати поля зі стовпців розширеної таблиці дат. Це хороша стратегія для складних полів.
У цій статті я поясню, як знайти найпопулярніші продукти для регіону за допомогою обчислень DAX у LuckyTemplates, включаючи функції TOPN і CALCULATE.
Дізнайтеся, як використовувати вимірювання сміття для позначок низької потужності, які ви хочете ефективно включити у свою модель даних.