Quantcast
Channel: Найцікавіше на DOU
Viewing all articles
Browse latest Browse all 8115

R дайджест #0

$
0
0

R — это язык программирования, ставший стандартом де-факто в мире математической статистики. Это определение не очень точное, потому что R используется в первую очередь как среда для интерактивных вычислений. С другой стороны, R — это реализация языка программирования S, выросшего из библиотеки вычислительных функций для FORTRAN с некоторыми отличиями. Развитие S остановилось, а для R как свободной реализации, в которой принимают участие создатели оригинального S, — продолжилось. В последнее время внимание к R повысилось из-за развития приложений анализа данных и вхождения термина data-science в последнюю версию startup buzzword bingo.

Прочитать о ранней эволюции языка S можно в cm.bell-labs.

Страница проекта R.

C чего можно начинать изучение:

R для нетерпеливых: impatient-r.

Стандартное введениедовольно легко читается и дает полную информацию.

Интерактивный онлайн-курс: tryr.codeschool.

Обзор существующих учебников: R-tutorials.

Более серьезная литература:

Формальное определение языка: R-lang.

Advanced R (находящаяся в процессе написания, но очень хорошая): adv-r.had.

Больше ресурсов на StackOverlow info page.

Для любителей русского языка:

Указательна ресурсы.

Книгав свободном доступе.

MOOP курсы:

Statistics for data analysis: coursera.org/course/compdata

Programming in R: coursera.org/course/rprog

Инструментальные средства:

rstudio — IDE для тех, кому не хватает минималистичного интерфейса командной строки.

Knitr — среда «составления аналитических отчетов», где можно комбинировать текст в Markdown или LaTeX с графиками и данными из R.

Связка R и Excel.

Развитие R проистекает немного не так, как в традиционных языках программирования, а скорее ближе к развитию естественных языков. К примеру, как и все современное, R поддерживает объектно-ориентированное программирование. Однако, в отличие от большинства современных языков, в R одновременно поддерживается несколько объектных систем: S3, S4 и Reference Classes (часто называемая R5). Обзор можно посмотреть в adv-r.hadили digitheadslabnotebook.

Также существует популярная система r-proto, предоставляющая прототипно-ориентированную объектную модель. Это все существует и развивается параллельно. Динамическая типизация тут соседствует с использованием зависимых типов (до того как это стало мейнстримом ;) - тип возвращаемого функцией значения может зависеть не только от типа, но и от размерности аргументов.

C++ встраивается в Rкак скриптовый язык (впрочем, как и наоборот).

В R просто огромный репозиторий пакетов. Как правило, если какой-то статистический метод где-то опубликован, то его реализация есть в CRAN.

rdocumentation — индекс всех пакетов с поиском.

shiny.rstudio — современный web-фреймворк для R, предоставляющий реактивную связь между серверной и клиенской моделью.

RHadoop — map/reduce в handoop.

RStorm — stream-processing в storm (более подробная статья).

SparkR-pkg — интерфейс к Apache spark.

revolutionanalytics — коммерческая версия R с Big Data расширениями.

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

Двухсторонняя связь R и Java/Scala: dahl.byu.

Cуществуют реализации R для JVM: от Oracleи от BeDataDriven, но практически использовать их в production режиме еще невозможно.

Еще один распространенный пакет для вызова R из JVM — RCaller.

Видео:

R: The good, the bad and the uglyна GOTO-2012.

Why and How People Use R на Lang-Next 2012

Present and Future of the R programming languageна Lang-Next 2014.

Локальные применения:


Viewing all articles
Browse latest Browse all 8115

Trending Articles