Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет ringill ([info]ringill)
@ 2005-12-26 03:15:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Среда для статистических расчётов под названием R
R -- свободно распространяемая кроссплатформенная среда для интерактивных статистических расчётов и не только. Есть хорошая общедоступная документация и приличное community.
Основной язык -- R, это S с улучшениями, в частности lexical (static) scoping. Сама среда написана на R + C.
Есть сторонние средства для интеграции поддержки R в Emacs, jEdit, Eclipse.
Стандарнтая среда R имеет интерфейс command-line + graphics plotter (в одной программе много консольных и графических окон). Есть несколько сторонних GUI-обвязок (RKWard, SciViews-R, Rcmdr).
Сама по себе среда R не является сервером.

Databases
Есть модули для R: RMySQL, RODBC, ROracle, RSQLite, pgUtils (postgreSQL).

Extensions
Есть возможность писать свои процедуры на R (т.е. и на S), C, C++. Есть хорошая документация.
Для вызова из R процедур на Java есть небольшой дополнительный
пакет rJava. Ещё один пакет SJava (ниже), обладает более широкими возможностями.

О threads в R никакой информации нет, вероятно R не поддерживает
треды.

Interfaces (local)
SJava -- Открытая библиотека, написанная на Java+C. Она позволяет вызывать Java из R и R из Java (последнее только на UNIX-платформах).

При желании вызывать R из Java, с управляющей программой на Java, необходимо создавать экземпляр R. Нельзя подключиться к уже запущенному экземпляру R. Однако, есть возможность задать для одного экземпляра (ROmegahatInterpreter) несколько независимых пользовательских контекстов (REvaluator). К сожалению, хотя сам по себе REvaluator является thread-safe, интерфейс R таковым не является и одновременная работа с REvaluator в нескольких тредах невозможна.
Должно быть, запросы к REvaluator-у из разных тредов ставятся в очередь.

Есть немаленький открытый Java-проект CDK (Chemistry Development Kit), который успешно использует SJava.

Interfaces (client-server)
Есть простой движок RWeb (на cgi), вызывающий R из command line. Его исходники открыты для изучения. Ничего особенного.

Есть свободно распространяемый кроссплатформенный пакет RServe, который позволяет организовать клиентский интерфейс (C, C++, Java) к R на сервере. Сам RServe запускается изнутри R, чем выгодно отличается от SJava и RWeb.

RServe использует бинарный, а не текстовый интерфейс к R, что обеспечивает хорошую скорость передачи данных.

RServe может работать с многими клиентами одновременно. К сожалению, это только на UNIX-серверах (по причине отсутствия в Windows API поддержки fork()). Windows-версия RServe не держит более одного клиента единовременно.

Каждый клиент получает персональный контекст (RConnection), но не может использовать его одновременно в параллельных тредах (что понятно), и не имеет права на более чем один RConnection (что непонятно).

Кроссплатформенность
Язык R, разумеется, аппаратно-независим.
Как было сказано, R -- кроссплатформенная среда, но SJava и RServe имеют ограниченную функциональность под Windows.

Лицензии
Цитата с сайта RServe:

"All files and sources are released under GPL.
Please contact us if you need a different license."

R и SJava также имеют GPL лицензию.

Любые программы, делающие (даже динамическую) линковку с GPL-кодом, обязаны распространяться под GPL


(Добавить комментарий)


[info]soko1@lj
2005-12-26 12:37 (ссылка)
нда, названице они интересное придумали. уже знаю три проги с одной буквы - X, w, r

(Ответить)