Подсветка синтаксиса в Notepad++ представляет собой настроечную xml, которая в соответствии с определёнными правилами задает стиль текста. Это чем-то похоже на использование css на сайтах, но в xml.

Выглядит это примерно так:

Notepad++ поддерживает подсветку синтаксиса большинства популярных языков программирования. Несмотря на то, что SAS к ним по умолчанию не относится, есть несколько пользовательских настроек, размещенных на официальном сайте Notepad++.

Воспользуемся одной из них и немного модифицируем.

Заходим на официальный сайт Notepad++ в раздел user defined languages и находим SAS в списке. Есть два варианта подсветки, мы будем пользоваться настройкой от Cath Lawrence, потому что она максимально похожа на вариант SAS Base. Синтаксис от Jeff Foarde оставим любителям прекрасного.

Нажимаем на ссылку SAS и сохраняем предложенный xml в любую папку.

Для работы своих веб-приложений SAS RDTM может использовать JBoss (Java EE-сервер приложений с открытым исходным кодом) в качестве сервера приложений. После успешной установки SAS RTDM мы получаем сконфигурированный набор из 6-ти серверов приложений, которые остается только запустить. В этой статье мы поговорим об автоматизации процесса запуска и остановки служб сервера приложений JBoss. В качестве платформы используем Windows Server 2008R2/2012R2.

В зависимости от Вашего желания и выбранных параметров при установке SAS каждый из серверов приложений может быть запущен с использованием пакетных файлов или консоли управления «Services» («Сервисы»).

Готовые пакетные файлы находятся в директории \bin. Их имена соответствуют шаблону SASServer<N>.bat, где <N> – порядковый номер сервера JBoss. Например, если Вы установили чистый JBoss в директорию C:\jboss-4.2.3.GA\, то пакетные файлы будут находиться в C:\jboss-4.2.3.GA\bin. Каждый файл следуют запускать согласно его порядковому номеру: SASServer1.bat запускается первым, SASServer11.bat – последним.

Для запуска службы из консоли управления «Services» выполните команду services.mmc в командной строке или стартовом меню. В открывшейся консоли найдите службы, названия которых соответствует шаблону JBoss – SASServer<N>, где <N>, как и в случае с пакетными файлами, – порядковый номер сервера приложений. Запуск служб так же осуществляется поочередно, согласно нумерации в названии.

Пользователю SAS понадобилось преобразовать программу из языка MATLAB в язык SAS/IML, и он спросил, есть ли в SAS/IML функции, эквивалентные функциям fliplr и flipud в MATLAB. Эти функции отражают столбцы или строки матрицы; "LR" означает "слева-направо", а "UD" — "сверху-вниз".

Нет, в SAS/IML нет эквивалентных встроенных функций, но как когда-то пела группа Devo: "Если у вас возникла проблема, ее нужно решить". В этой статье показано, как реализовать эти функции в SAS/IML. Или, перефразируя принцип, воспетый группой Devo: "Если у вас есть матрица, ее нужно отразить. Отразить ее никогда не поздно. Отразите ее как следует."

Функции FLIPLR и FLIPUD в SAS/IML

Ключом к обращению столбцов или строк матрицы является использование обозначения индекса. Напомним, что в языке SAS/IML выражение A [, 1] извлекает первый столбец A. (Если индекс строки не указан, это означает "использовать все строки"). Аналогично, A [, 1:3] извлекает первые три столбца A (по порядку), а A [, 3:1] извлекает первые три столбца A в обратном порядке. Аналогичная запись действительна и для строк. Выражение A [3:1, ] извлекает первые три строки A в обратном порядке. Следующие функции SAS/IML реализуют функциональность функций fliplr и flipud для матриц:

Как-то раз мне попалась программа, написанная на MATLAB, в которой программист использовал функцию MATLAB под названием ROT90, которая поворачивает матрицу против часовой стрелки на 90, 180 или 270 градусов. Я подумал, что было бы интересно реализовать эту функцию MATLAB на языке SAS/IML.

Я не был уверен, как сделать это наиболее эффективно. Сначала я подумал о циклах. Но потом я понял, что повернуть матрицу можно с помощью трех простых операций с отражением: диагональные отражения, отражения вверх-вниз и отражения слева-направо. Отражение по диагонали — операция транспонирования матрицы. Отражение вверх-вниз эквивалентно отражению строк матрицы. Отражение слева-направо эквивалентно отражению столбцов матрицы. Каждую из этих операций легко реализовать, и, объединив две операции, вы можете реализовать поворот элементов матрицы.

Если у вас есть необходимость быстро проверить xml на соответствие схеме xsd и наоборот, а под рукой нет установленных инструментов для валидации, вам наверняка пригодится сайт freeformatter.com

Вообще на freeformatter можно не только валидировать xml по xsd, там можно так же тестировать xpath, создать xsd по xml, конвертировать xml в json, захешировать строки и еще много всего, но в этой статье мы будем рассматривать только часть по валидации.

 Для того чтобы проверить корректность связки xml/xsd нужно выбрать нужный сервис на сайте

 

 

В предыдущих статьях (Data-driven SAS macro loops, Modifying variable attributes in all datasets of a SAS library, Automating the loading of multiple database tables into SAS tables) я представил различные приложения, управляемые данными и созданные с использованием макросов SAS.

Однако макроциклы не являются единственными инструментами для разработки программ, управляемых данными.

Один из таких инструментов — процедура CALL EXECUTE. Процедура CALL EXECUTE принимает единственный аргумент, который является символьной строкой или символьным выражением. Символьное выражение обычно представляет собой объединение строк, содержащих элементы кода SAS, которые должны быть выполнены после их разрешения. Выражение аргумента может включать символьные константы, переменные шага данных, ссылки на макропеременные, а также ссылки на макросы. Процедура CALL EXECUTE динамически создает код SAS во время итераций шага DATA. Этот код выполняется после завершения шага DATA. Это позволяет превратить шаг DATA, который выполняет итерации в таблице драйверов, в эффективный генератор кода SAS, который аналогичен генератору макросов SAS.

Однако довольно своеобразные правила разрешения аргументов процедуры CALL EXECUTE могут затруднить ее использование. Давайте проясним этот вопрос.

Самыми высокими темпами Индекс растет в Центральном федеральном округе (ЦФО) (на 3 пункта). При этом в Северо-западном, Сибирском и Уральском ФО показатель Индекса за год не изменился

Компания FICO (NYSE:FICO), мировой лидер в предиктивной аналитике и разработке систем для принятия управленческих решений, и Национальное бюро кредитных историй (НБКИ), крупнейшее бюро в России, фиксируют повышение Индекса кредитного здоровья (FICO® Credit Health Index) (Таблица 1 в Приложении). Данный показатель за прошедший год вырос на 2 пункта и составил 92 пункта (в июле 2016 года – 90 пунктов). После периода стремительного падения Индекса в 2015 году и его стабилизации в 2016 году, в 2017 году наметилась тенденция к его восстановлению. В настоящее время показатель Индекса «вернулся» на уровень II квартала 2015 года.

График индекса кредитного здоровья:

Формула для расчета аннуитетного платежа  выглядит следующим образом:

Обозначение аргументов:

A – сумма кредита;

R – процентная ставка;

N – срок кредита;

Пример

Ключевая задача любого портфельного менеджера – обеспечение оптимального соотношения риск-доход, т.е. уровня доходности кредитного продукта. Основной инструмент решение данной задачи – продуманная рисковая политика, которая, с одной стороны, позволяет избежать выдачи нежелательных с точки зрения качества кредитных продуктов, а, с другой, обеспечивает достаточный уровень объема продаж данных продуктов.

Кредитная политика – это набор правил и инструментов, регламентирующих процесс предоставления и обслуживания кредитных продуктов. Таким образом, управление кредитным риском включает в себя разные элементы – это и методология работы с кредитной заявкой менеджером по продажам, это настройка фронт-системы, методология системы принятия кредитного решения (рисковые политики), методология андеррайтинга, методология работы с просроченной задолженностью и т.п. В данной статье речь пойдет о ключевом для портфельного менеджера элементе системы управления кредитным риском – методологии разработки автоматических правил принятия кредитного решения (рисковых политик).

Сигналом к необходимости пересмотра существующих или разработки новых рисковых политик обычно служат результаты мониторинга кредитного портфеля и качества новых выдач.

QBIS.Loan - система управления кредитным портфелем от компании БИС

Видеопрезентация, проведенная для rtportal 26.07.2017:

Стандартный опросник rtportal.ru

Основной функционал: Комплексное решение для работы с кредитным портфелем на всех этапах его жизни (от выдачи до списания).

Сферы применения продукта: Предкредитная обработка, выдача кредитов, сопровождение и профилактика возникновения ПЗ, коллекшн, аналитика

Для того чтобы добавить новую схему (таблицу) в Oracle Apex нужно:

  1. Зайти в админ панель под учетной записью администратора, которую мы создали ранее

 

  1. Нажать «Manage Workspaces» на панели Instanse Administration

Временные массивы SAS — ценная возможность SAS, о которой часто забывают. Я часто вижу, что многие начинающие и средние программисты SAS не знакомы с временными массивами. К счастью, в них нет ничего сложного, и они очень полезны. Прежде всего, что такое временный массив?

Начнем с "обычного" массива:

array x[10] x1-x10;

Этот массив x связан с 10 переменными x1-x10. (Помните, что в качестве имени массива можно использовать любое допустимое имя SAS, оно не должно быть связано с именами переменных.) Теперь перейдем к временному массиву.

array y[10] _temporary_;

Вы указываете ключевое слово _TEMPORARY_ там, где обычно указываете имена переменных. С временным массивом не связаны никакие переменные. В этом примере можно сослаться на переменную y[1] или y[2] и т.д., но переменных y1, y2 и т.д. нет.

Мое любимое использование временного массива - это поиск в таблице. Вы можете загрузить элементы временного массива, а затем использовать эти элементы для хранения значений. Пример приведен ниже:

Представитель компании OneFactor рассказывает про Hadoop и механику его работы. И немного про Spark (язык программирования).

Доступно и интересно. По крайней мере первые 20 минут :)

Полезно в первую очередь технологам, ds и mis. И для любого, кто хочет расширить кругозор.

Видео:

 

Небольшие величины имеют значение. Представьте, что вы экономите (или разумно расходуете) всего 1 секунду за каждый час. Всего одна секунда! В этом случае за все время вашей жизни вы сэкономите или потратите разумно (1 сек в час * 24 часа в сутки * 365 дней в году * 100 лет) / (3600 секунд в час * 24 часа в день) = 10 дней — целый отпуск на две недели!

Хотя сравнение усечение и округления может показаться незначительным, накопительный эффект может быть очень большим, будь то усечение или округление десятичных чисел или значений времени SAS, представленных ниже.

Из предыдущей статьи Усечение десятичных чисел в SAS без округления мы знаем, что такие форматы SAS как w.d, DOLLARw.d и COMMAw.d не обрезают десятичные числа, а округляют их.

Однако форматы времени SAS несколько отличаются Давайте рассмотрим пример.