Исходный код вики Анализ и визуализация данных в Corpwiki (XWiki) с применением языка R
Редактировал(а) Сергей Лунев 01.10.2025 11:06
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
![]() |
1.1 | 1 | (% style="text-align:center" %) |
| 2 | [[image:CorpwikiR.png||height="450" width="800"]] | ||
| 3 | |||
| 4 | == Что такое язык программирования R == | ||
| 5 | |||
| 6 | **R - язык программирования, созданный специально для статистического анализа данных**. Его разработали на факультете статистики Оклендского университета. | ||
| 7 | |||
| 8 | **Особенности языка R**: | ||
| 9 | |||
| 10 | * **Интерпретируемый**. Программа на языке R сразу готова к исполнению — её не нужно собирать в исполняемый файл с помощью компилятора. | ||
| 11 | * **Простой по синтаксису**. R в своей основе не содержит сложных конструкций и запутанных функций. Даже типов данных у него всего четыре: символьные, числовые, логические и комплексные. | ||
| 12 | * **Рабочая среда**. В R встроены готовые методы статистического анализа и инструменты для визуализации. | ||
| 13 | |||
| 14 | **Сфера применения языка R**: математики, биологи, генетики и другие учёные, которым нужно проводить статистические исследования и строить модели. Также R востребован среди аналитиков данных и специалистов по Data Science. | ||
| 15 | |||
| 16 | **Распространение**: язык и среда доступны под лицензией GNU GPL. Распространяются в виде исходных кодов, а также откомпилированных приложений под ряд операционных систем. | ||
| 17 | |||
| 18 | == Какая польза от использования языка R в бизнесе == | ||
| 19 | |||
| 20 | С точки зрения бизнеса разработку приложений для анализа данных на языке R можно считать почти идеальным решением: | ||
| 21 | |||
| 22 | 1. Отсутствуют какие-либо финансовые барьеры для начала использования: | ||
| 23 | 1*. Не надо никаких первоначальный вложений в лицензии. | ||
| 24 | 1*. Нет никаких лицензионных ограничений и проблем потенциального расширения. | ||
| 25 | 1*. Нет никаких ежегодных платежей за поддержку лицензий. | ||
| 26 | 1*. Все прекрасно работает на linux, нет необходимости в приобретении дополнительных ОС. | ||
| 27 | 1. Если ваши внешние системы выдают необходимую информацию, то этого уже достаточно для начала проекта. **Сопутствующие проекты по доработке не требуются**, все можно будет сделать на уровне аналитики. | ||
| 28 | 1. Уже есть доказанная практика применения R в бизнесе практически во всех вертикалях. | ||
| 29 | 1. Не надо планировать глобальный проект, достаточно начать с частных проблемных мест. | ||
| 30 | 1*. Проекты получаются компактными и быстрыми, результаты легко переводятся в деньги (заработанные или сэкономленные). | ||
| 31 | 1*. Полученные результаты позволяют взглянуть на существующие задачи под иным углом зрения, обнаружить реальные проблемы и расставить акценты в более правильном виде. | ||
| 32 | |||
| 33 | (% class="box successmessage" %) | ||
| 34 | ((( | ||
| 35 | {{icon name="info-circle" size="2x"}}{{/icon}} **Если ваши корпоративные приложения умеют "отдавать" данные в любом виде, этого уже достаточно для их обработки в R** | ||
| 36 | Доработка ваших систем не потребуется! | ||
| 37 | |||
| 38 | Вся обработка данных может быть выполнена на стороне приложения R. | ||
| 39 | |||
| 40 | Ввиду того что, данный язык изначально создан для работы с данными, приложения на нем получаются быстро, они компактные и понятные. | ||
| 41 | ))) | ||
| 42 | |||
| 43 | == Что умеют приложения на R == | ||
| 44 | |||
| 45 | * Импорт данных из различных источников.** txt\csv**, **xls **(Excel), web scrapping, RDBMS. | ||
| 46 | * Обработка данных: фильтрация, группировка, агрегирование, добавление и вычисление. | ||
| 47 | * Временной анализ (как правило, 80% данных сопровождаются временными метками). | ||
| 48 | * Расширенная обработка (элементы высшей математики, включая элементы машинного обучения): Наиболее популярен поиск аномалий, различные классификаторы, рекомендации и прогнозирование и Process mining. | ||
| 49 | * Визуализация данных различными способами. | ||
| 50 | * Интеграция с внешними информационными системами для экспорта рассчитанных данных. | ||
| 51 | * Экспорт в форматы, удобные для восприятия человеком, такие как: **pdf**, **html**, **xls**, **doc**, **ppt**. | ||
| 52 | * Web-base рабочее место для аналитика\рядового пользователя. | ||
| 53 | |||
| 54 | Приведенный функционал доступен в рамках экосистемы R без особой необходимости инсталляции каких-либо дополнительных сторонних компонент. | ||
| 55 | |||
| 56 | (% class="box infomessage" %) | ||
| 57 | ((( | ||
| 58 | {{icon name="info-circle" size="2x"}}{{/icon}} **Фактически, ваша база знаний может использоваться как BI система** | ||
| 59 | Но в отличии от дорогих и сложных в внедрении систем подобного класса, вы сможете получить результаты быстро. | ||
| 60 | Рецепт успеха прост: | ||
| 61 | |||
| 62 | * Создать страницу в вашей базе знаний. | ||
| 63 | * Разместить на ней код вызова приложения R. | ||
| 64 | * Создать приложение R например в RStudio. | ||
| 65 | * Разместить его в сервисе генерации. | ||
| 66 | ))) | ||
| 67 | |||
| 68 | == Как работает интеграция между Corpwiki (XWiki) и приложениями на языке R == | ||
| 69 | |||
| 70 | Мы в Corpwiki разработали подход позволяющий использовать всю мощь приложений написанных на языке R в XWiki. | ||
| 71 | |||
| 72 | Это позволяет не только обогатить содержание баз знаний (корпоративных вики) визуально привлекательной инфографикой но и реализовать много интересных с точки зрения бизнеса решений. | ||
| 73 | |||
| 74 | Схематично процесс взаимодействия выглядит следующим образом: | ||
| 75 | |||
| 76 | [[image:Внешние данные.png||height="848" width="1200"]] | ||
| 77 | |||
| 78 | На страницу XWiki встраивается небольшой кусочек кода. | ||
| 79 | |||
| 80 | При обращении пользователя к такой странице, она запрашивает данные у сервиса обработки. | ||
| 81 | |||
| 82 | Данный сервис устанавливается "рядом" с XWiki и если например, ваша база знаний расположена на ваших серверах, то вы сможете также разместить данный сервис у себя. | ||
| 83 | |||
| 84 | Безопасность корпоративных данных гарантирована. | ||
| 85 | |||
| 86 | Сервис обращается уже к XWiki откуда "забирает" данные для формирования отчетов или графики. | ||
| 87 | |||
| 88 | Такие данные могут забираться "в сыром" виде. | ||
| 89 | |||
| 90 | Вся обработка данных (фильтрация, группировка, вычисления, обогащение) происходят на стороне сервиса. | ||
| 91 | |||
| 92 | После того как данные готовы для отображения, система возвращает их в XWiki и пользователь видит готовый результат. | ||
| 93 | |||
| 94 | Для пользователя все выглядит так как будто он просто открыл страницу. | ||
| 95 | |||
| 96 | [[image:1733135160839-173.png]] | ||
| 97 | |||
| 98 | (% class="box successmessage" %) | ||
| 99 | ((( | ||
| 100 | {{icon name="info-circle" size="2x"}}{{/icon}} **Созданная инфографика является интерактивной** | ||
| 101 | |||
| 102 | Другими словами есть возможность добавлять элементы управления на такие страницы и пользователи в режиме реального времени могут изменять настройки отображения. | ||
| 103 | |||
| 104 | Кроме того есть возможность дополнительной обработки введенных данных. | ||
| 105 | |||
| 106 | Таким образом можно не только показывать данные "как есть" но и реализовать модели вида "как будет". | ||
| 107 | |||
| 108 | Например отобразить график зависимости чистой прибыли от численности персонала основываясь на средней выработке и медианном значении заработной платы сотрудников. | ||
| 109 | ))) | ||
| 110 | |||
| 111 | === Внешние данные === | ||
| 112 | |||
| 113 | Как можно увидеть на схеме, данные могут быть получены не только из объектов данных XWiki но и из любых внешних источников данных. | ||
| 114 | |||
| 115 | Это могут быть корпоративные приложения, базы данных, файлы Excel и тому подобное. | ||
| 116 | |||
| 117 | Данные из разных систем можно объединять и использовать для формирования отчетности и инфографики. | ||
| 118 | |||
| 119 | Таким образом вы сможете превратить вашу базу знаний в витрину данных или BI систему. | ||
| 120 | |||
| 121 | Посмотрите в разделе примеров какие возможности дает для отображения данных данный подход. | ||
| 122 | |||
| 123 | == Примеры результатов работы приложений на языке R == | ||
| 124 | |||
| 125 | Ниже мы разместили галерею скриншотов приложений и графиков созданных с применением языка R. | ||
| 126 | |||
| 127 | Любое из представленных решений, и любой график могут быть реализованы в вашей вики системе Corpwiki (XWiki). | ||
| 128 | |||
| 129 | |||
| 130 | {{velocity}} | ||
| 131 | #* Ваш velocity-код здесь *# | ||
| 132 | ## | ||
| 133 | ##=== Живой пример === | ||
| 134 | ## | ||
| 135 | ##(% class="box successmessage" %) | ||
| 136 | ##((( | ||
| 137 | ##{{icon name="info-circle" size="2x"}}{{/icon}} Попробуйте воспользоваться настройками в правой части диаграммы. | ||
| 138 | ##Обратите внимание на то как меняется диаграмма при изменении настроек. | ||
| 139 | ##Попробуйте фильтр "по годам" или то как можно скрыть\отобразить панель настроек (треугольник выше заголовка "Настройки") | ||
| 140 | ##))) | ||
| 141 | ## | ||
| 142 | ##{{html}} | ||
| 143 | ##<iframe src="https://shiny.corpwiki.ru/apps/7d68a672-bac2-4ca7-8be7-169760ce103b/" style="border:0px #ffffff none;" name="testXWR" scrolling="no" ##frameborder="1" marginheight="10px" marginwidth="0px" width="100%" height="700px" allowfullscreen></iframe> | ||
| 144 | ##{{/html}} | ||
| 145 | ## | ||
| 146 | {{/velocity}} | ||
| 147 | |||
| 148 | === Скриншоты возможных решений === | ||
| 149 | |||
| 150 | {{gallery height="600px" width="100%"}} | ||
| 151 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR1.png | ||
| 152 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR2.png | ||
| 153 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR3.png | ||
| 154 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR4.png | ||
| 155 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR5.png | ||
| 156 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR6.png | ||
| 157 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR7.png | ||
| 158 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR8.png | ||
| 159 | {{/gallery}} | ||
| 160 | |||
| 161 | |||
| 162 | **Применение подобного подхода позволяет реализовать и более сложные интерфейсы и сценарии.** | ||
| 163 | |||
| 164 | **Об этом наша другая статья: [[Альтернативные интерфейсы для Corpwiki (XWiki)>>doc:Stati.Interfeis.Alternativnye-interfeisy-dlia-Corpwiki-XWiki.WebHome]]** | ||
| 165 | |||
| 166 | ---- | ||
| 167 | |||
| 168 | {{cl-plate-help/}} | ||
| 169 |
