LINUX.ORG.RU

R — данные и графики

 , , ,


0

0

По согласованию с редакцией Linux Format выложил в открытый доступ "R — данные и графики" — вторую часть из цикла статей по R. Там же по ссылке лежат исходные коды команд к статьям в Rnw-формате и результаты их выполнения в pdf.

Из Википедии: R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

Осенью планируется продолжить цикл (запланировано 4 статьи, начиная с сентября). Если есть пожелания, то их самое время высказать.

P.S. Если в тексте будет найдена ошибка, то дайте знать — исправлю. Сам текст немного отличается от журнальной статьи и в дальнейшем будет развиваться.

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от jtootf

> у химиков R расхожий инструмент

btw, мои друг сейчас подрабатывает у биологов-статистиков
Я так понял, что те там ни о чем, кроме как o SPSS и не слышали.
Переодически у него возникают какие-то элементарные
проблемы, о которые SPSS спотыкается, типа -
есть ~100 точек и их необходимо отфитировать 3мя экспонентами
.. и это становиться проблемой, с ошибками !!!
я уже не говорю обо всяких там вычитаний фонов, автоматических нахождений пиков, которая энта GUIевина (SPSS) никогда нормально не
осилит ... хотя на рынке уже тыщу лет и столько же стоит.
Говорю это с чужих слов.

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

>Объясняю в чем преимущества языка R для интерактивного анализа:
-1 - вопрос стоял не про " для интерактивного анализа"
0 - ко всем пунктам - причем тут статистика?
1,2 - ну и что?
3 - не до конца понял
4,6,7, 8, 9, 10 - НИЧЕГО нового, все это уже есть (и в офф-топике [RООТ] в частности/особенности)

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

> Динамическая типизация.

не понимаю, откуда проистекает такой фанатизм
по-поводу "Динамическая типизация".

Вот и сын недавно про PHP - "классно" говорит ...

Это типа "строка <-> число" не надо вызывать atoi, и пр.
но, ведь в C++ есть "overload operator=" ++ всякие там smart pointerы
+++ templates -
что, несомненно, "мощнеее", чем "Динамическая типизация"

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

> -1 - вопрос стоял не про " для интерактивного анализа"

То есть как раз то, что из ROOT выкинули. Типа оно не нужно.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Valeriy_Onuchin

>0 - ко всем пунктам - причем тут статистика? 
Просто тут зашла речь о R vs ROOT. И _язык_ R 
никоим образом не привязан к статистике, он
вполне подходит для многих других задач анализа
данных.
 
>1,2 - ну и что?

Ну и то, это позволяет без особого напряга создавать
функции высшего порядка которые получают в качестве аргумента 
другие функции, причем функция-аргумент может быть в момент
вызова любого типа.

>3 - не до конца понял
Советую почитать SICP 

>4,6,7, 8, 9, 10 - НИЧЕГО нового, все это уже есть (и в офф-топике [RООТ] в частности/особенности) 

Нихрена там (в ROOT) нет, либо есть в уродском виде.
Поясню, что я подразумеваю под уродским видом (относительно
векторизованных операций): недостаточно
просто создать некий класс под названием vector и 
определить для него операторы + и -, необходимо,
чтобы этот vector стал повсеместно используемой структурой
данных во всем пакете ROOT. Иначе этот vector так и 
останется никому не нужным велосипедом.
  
Да, и еще я забыл про сборку мусора, которой в ROOT
тоже нет.


PS. Я не просто так говорю, я пользовался и ROOT и R.
Использовать C++ как скриптовый язык --- это идиотизм.
Хотя надо признать, что PyROOT представляет шаг 
вперед в этом направлении.

 
  

anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

>Это типа "строка <-> число" не надо вызывать atoi, и пр. 

Строка<->число -- это никоим образом не динамическая типизация.

>но, ведь в C++ есть "overload operator=" ++ всякие там smart pointerы>>
>+++ templates -
>что, несомненно, "мощнеее", чем "Динамическая типизация" 

Когда я пишу высокоуровневый код для интерпретатора, то я хочу
сконценитрироваться на решаемой задаче, а не забивать голову 
подобной херней. Overload operator в C++ это костыль. Я не могу 
определить оператор возведения в степень в C++ так, чтобы он
работал со всеми типами для которых определена операция умножения,
и при этом ничего не зная про эти типы. Единственный способ
сделать это с использованием статической типизации --- это
добавить систему вывода типов (типа как в Haskell), которой
в C++ нет.    
Про smart pointerы я уже сказал выше --- мне не нужны пойнтеры в интерпретаторе, мне нужен сборщик мусора.


anonymous
()
Ответ на: комментарий от Valeriy_Onuchin

Да-да, все преимущества ROOT прикручиваются к R на раз...

А вот наоборот ...

"Только PyROOT представляет из себя шаг вперед"

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.