Профилирование кода в R

Функции system.time(), benchmark(), microbenchmark() позволяют оценить общее время выполнения выражения и нивелировать возможные вариации за счет множества попыток, однако для более полной оценки и определения стратегии оптимизации кода необходимо также выявлять и «узкие» места в выполняемом коде. К подобным «узким» местам можно отнести те вызовы, которые занимают…

Добавление аннотаций на графики ggplot

Иногда требуется добавить на график какую-нибудь текстовую аннотацию - пояснение или же значение конкретной точки. С определенной легкостью это можно для графиков, построенных с помощью функции annotate() пакета ggplot2. Приведу пример аннотаций на гистограмме частот значений скошенного t-распределения (которое можно использовать для моделирования времени реакции в психологических…

Измерение времени выполнения кода в R

Порой возникает необходимость оценить время выполнения скрипта, функции или участка кода с целью оптимизации или выявления «узких» мест. Это сообщение посвящено обзору инструментов измерения производительности R-кода.

Для измерения времени выполнения выражений (производительности кода) в R существуют следующие инструменты:

  • Функция system.time() из пакета base;
  • Cпециализированные…

Конвейеры и цепочки команд в R: пакет magrittr

Разработчики пакета magrittr ставили перед собой следующие цели: сократить время разработки и сделать код более читаемым и лёгким в сопровождении. Мотивами для создания пакета послужили оператор |> в языке F# и конвейеры (pipes) в unix-подобных операционных…

Парсим HTML и скачиваем файлы с подстраниц сайта

Недавно мне попалась книга «Applied Multivariate Statistical Analysis» за авторством Wolfgang K. Härdle, Léopold Simar. В книге приводится множество примеров кода со ссылками на данные. Но ни файлов с кодом. ни с данными у меня не оказалось. В самом начале книги я обнаружил следующий абзац, который вроде бы содержит ответ на мой вопрос, но всё оказалось не так просто. Итак читаем:

The…