Не оспаривается -- R в качестве основной реализации S (и той, которая, как оказалось, является собственно проектом с открытым исходным кодом, а также проектом GNU).
Не только как язык S, разработанный именно для этой цели (см. книги Джона Чемберса), но и как довольно богатая поддержка специфических для домена пакетов на CRAN - непревзойденная: более 2000 пакетов с правильным контролем качества, часто авторами которых являются эксперты в этой области.
ACM видит это так же, когда он вручил ACM Software Systems Award Джону Чемберсу в 1998 году со следующей цитатой
Джона М. Чемберса
For The S system, которая имеет вечность изменили то, как люди анализируют, визуализируют, и манипулировать данными.
Для справки, другими лауреатами этой премии были TeX, Smalltalk, Postscript, RPC, "the web", Mosaic, Tcl/Tk, Java, Make, ... Неплохая компания.
Теперь, если вы "только" хотите собрать и обобщить некоторые данные только о любом процедурном или функциональном языке будет делать. Но если вы хотите что-то, что было предназначено для программирования с данными , то R как основная реализация S - это она.
Я бы сказал, что R как большинство курсов статистики в моем университете используют R, и большинство моих друзей, которые прошли такие курсы, вполне довольны его диапазоном и охватом.
Я даже попробовал MATLAB и нашел его довольно удобным.
ура
-121--2066716- Поскольку XML
являются неизменяемыми
, каждый раз, когда вы хотите добавить узел, вы должны создавать новый, вы можете использовать Образцы соответствующий
для добавления нового узла:
var root: Node = <model></model>
def addToModel(newNode: Node) = root match {
//match all the node from your model
// and make a new one, appending old nodes and the new one
case <model>{oldNodes@_*}</model> => root = <model>{oldNodes}{newNode}</model>
}
addToModel(<subsection>content</subsection>)
-121--1602509- APL , по-видимому, является одним из лучших языков вокруг Это не общая цель, хотя...
Для него требуется специальная клавиатура и шрифт, поскольку он не использует ascii.
Смотрите Игру жизни Конуэя в одной строке APL для получения краткого обзора того, что можно сделать с ней.
Библиотека pystats (для Python) хорошо подходит для статистического анализа.
-121--2066721-Если требуется проверить не только, является ли объект массивом, но и выполнить его итерацию:
if (array.getClass().isArray()) {
int length = Array.getLength(array);
for (int i = 0; i < length; i ++) {
Object arrayElement = Array.get(array, i);
System.out.println(arrayElement);
}
}
(класс выше - java.lang.reflect.Array
)
Matlab также хорош в статистике. Но это не совсем бесплатно.
Октав - это свободный клон, который может также делать то, что нужно.
Взгляните на Incanter , основанный на clojure . «Incanter - это основанная на Clojure, R-подобная платформа для статистических вычислений и графики». Clojure - это язык на основе Lisp, реализованный поверх JVM. Имеет легкий доступ к библиотекам Java. Не может быть более общей цели, чем это.
Ознакомьтесь с пакетом RooFit для ROOT . Он используется, например, физики элементарных частиц для анализа данных.
ROOT - это среда C ++
, которая также имеет привязки python и ruby. Он также включает ограниченный интерактивный интерпретатор C ++
.
Библиотека pystats (для Python) хорошо подходит для статистического анализа.
-121--2066721-Если требуется проверить не только, является ли объект массивом, но и выполнить его итерацию:
if (array.getClass().isArray()) {
int length = Array.getLength(array);
for (int i = 0; i < length; i ++) {
Object arrayElement = Array.get(array, i);
System.out.println(arrayElement);
}
}
(класс выше - java.lang.reflect.Array
)
Мой друг, специализирующийся на статистике рынка, использует SAS . Я мало что знаю об этом - это не похоже на "настоящий" язык, но, возможно, стоит проверить.
Я все для Python с привязками R.
Вы не думали использовать что-нибудь вроде MatLab ? Она имеет много расширенных возможностей для выполнения анализа данных, и вы можете выполнять некоторые операции по программированию в среде.
А как насчет Статы ? У меня есть друг, аспирант по экономике, он все время в восторге от Статы. И мне лично нравится Mathematica .
R - это здорово, если все , что вы делаете, - это статистика. В ней есть хороший интерактивный интерфейс и инструменты визуализации. Однако, его довольно сложно использовать в качестве языка общего назначения, потому что его синтаксис и семантика очень сильно оптимизированы для работы со статистикой. Если вам нужен более универсальный язык, то Python с SciPy будет достойным выбором, хотя я использовал его и обнаружил, что статистическая рутина в нём несколько незрелая. Часто они неэффективны или терпят неудачу в угловых случаях.
Если вы занимаетесь интеллектуальным анализом данных на больших массивах данных, делая важную роль в производительности, и/или не возражаете против использования альфа-инструментов, то язык программирования D и библиотека dstats dstats могут быть довольно неплохими. D - это примерно такой же язык общего назначения, как и вы, но IMHO дстаты очень просты в использовании, потому что метапрограммирование шаблонов облегчает создание хорошего API даже на статически скомпилированном, близком к металлическому, языке. (Полное раскрытие: я написал большинство дстацев, так что, конечно, я думаю, что это хорошо)
.Я бы сказал R, так как большинство курсов по статистике в моем университете используют R, и большинство моих друзей, которые проходили такие курсы, вполне довольны его диапазоном и охватом.
Я даже попробовал MATLAB и нашел его довольно удобным.
cheers
Библиотека pystats (для Python) хорошо подходит для статистического анализа.
Нет сомнений в том, что R - лучший язык для статистики, как говорит Дирк. Я просто хочу добавить к этому несколько моментов:
Во-первых, я думаю, что основная причина, по которой вы должны использовать R, - это интересы сообщества. На данном этапе он настолько широко используется экспертами в академических кругах и промышленности, что ни один другой язык даже близко не может сравниться с богатством на CRAN.
Во-вторых, следует признать, что с языком R приятно работать.Это мой основной язык, и, попробовав альтернативы, я нет намерения отказаться от него в ближайшее время. Но он также не имеет монополии на программирование с данными, и это утверждение можно зайти слишком далеко. Все языки Lisp и функциональные языки сильны в программировании данных. В конце концов, Лисп произошел от «программирования по спискам», и именно влияние Лиспа на R сделало этот язык тем, чем он является.
Есть члены R-сообщества (например, Росс Ихака), которые фактически рассматривают Лисп как статистический язык будущего (см. Статью «Назад в будущее» для справки) из-за некоторых глубоких проблем проектирования в Язык R (например, без многопоточности).
Итак, хотя R, несомненно, лучший язык для статистических вычислений, я вижу некоторую ценность в знакомстве с другим языком, таким как OCaml, Haskell или (возможно) Clojure / Incanter.
Вы можете взглянуть на программу sage , которая является повторной реализацией интерпретатора Python, позволяющей вызывать разные языки программирования для статистики (R, matlab, octave и т. д.) с использованием синтаксиса python.
Одна из основных проблем при написании программ для сбора статистики заключается в том, что у вас может появиться много разных небольших скриптов, каждый из которых выполняет отдельную задачу, и вы можете получить беспорядочные папки и путаницу в ваших результатах.
Итак, помимо выбора языка программирования (я думаю, что другие люди уже ответили на ваш вопрос) вам также понадобится синтаксис для определения конвейеров сценариев: вы можете сделать это с помощью программы 'gnu / make' (например, прочтите это ) или с этим мудрецом , или есть другие решения.
По моему опыту, R
является исключительно мощным языком в следующих областях:
Обработка и преобразование данных.
Статистический анализ.
Графика.
Но R
ни в коем случае не является пони с тремя уловками. Я также применил язык к задачам, которые не полностью вписываются в вышеперечисленные категории. Вот несколько примеров:
Сценарий, помогающий в создании универсальных двоичных файлов OSX путем определения и сопоставления статических и динамических библиотек различных архитектур и последующего запуска результирующих групп через липо
.
Скрипты для сбора информации с веб-страниц.
Набор скриптов для создания изображений с географической привязкой, разрезания изображений на наборы фрагментов с использованием GDAL
, формирования JSON
манифеста, описывающего выходные данные, и загрузки результата на веб-сайт для немедленного отображения Автор OpenLayers
.
Моя любимая часть использования R
- это частота, с которой я могу сказать:
ВОЗА! Есть пакет, который делает ЭТО ?!
Я также хотел бы +1 для R. Это может быть не так просто, как STATA или даже SPSS, особенно для непрограммистов. Хотя я предполагаю, что средний stackoverflower намного больше программист, чем я.
При этом я хотел бы сделать краткий обзор, потому что я видел пару статистических пакетов от пользователей (экономистов (точка зрения.
) STATA по-прежнему остается выбором для большинства экономистов, и действительно, у него есть свои плюсы. Графический интерфейс STATA помогает нести ответственность за множество опций и статистических функций. Кроме того, STATA, похоже, единственный пакет, у которого есть список рассылки, который, по крайней мере, несколько приближается к эталону: один из своего рода список рассылки R. Тем не менее, можно писать сложные файлы .do или загружать некоторые из Интернета. STATA, возможно, не так близок к языку программирования, как R, но все же предлагает хороший язык программирования для статистических целей. В зависимости от размера ваших наборов данных вы должны проверить, какая лицензия вам нужна.
Вы также можете использовать SPSS, который представляет собой даже больше инструмента с графическим интерфейсом, чем STATA, и является немного менее всеобъемлющим, например, для эконометрической работы, такой как модели TOBIT или панельные регрессии, особенно модели дискретного выбора.
Есть также Eviews - к сожалению, я почти забыл о нем и использовал его только для пары простых регрессов в своих исследованиях. Поэтому я просто называю это здесь. То же самое и с GAUSS, который кажется более математическим, чем остальная часть пакета. Недавно я услышал об Octave, которая также более математична.
Для моего личного использования R на голову выше всего остального.Иногда я объединяю его в Python или подключаю к базам данных MySQL или PostgreSQL, что также хорошо работает. R действительно помогает вам изучать статистику, потому что вам нужно понимать больше, чтобы что-то делать, чем вам нужно было бы проходить через подобные SPSS. Хотя, если вам нужен графический интерфейс, вы можете попробовать RKward или подумать об установке Komodo / Sciviews-R или Tinn-R в Windows. Последние не являются графическим интерфейсом пользователя, а являются редакторами, более или менее поддерживающими выделение кода и предложения кода, которые также помогают сделать это. Эконометрика Фарнсворта на языке R - хорошее чтение. Ах да, и я не могу забыть упомянуть про сюжет. пакет ggplot2 от Хэдли Уикхема просто готов. Лучший способ создавать графику, если вам не нужно, чтобы она была интерактивной. В конце концов, R действительно является наиболее гибким пакетом: вы даже можете установить его на веб-сервере и создать хороший веб-интерфейс - нет предела.