LINUX.ORG.RU

Туториал по R для искушённых

 , , ,


3

3

Доброго времени суток.

Подскажите туториалы по R, где будут обозначены основные его особенности в сравнении с остальными скриптовыми ЯП а-ля Python, Perl, Ruby и т.п. Если где-то будет просто перечень ключевых слов, которые гуглить, чтобы узнать эти особенности, тоже будет очень хорошо.

Я потыкал пару туториалов, а они все для начинающих. Не хочу больше тратить время на 1+1.

Целевые инструменты: knitr, RStudio.

Заранее спасибо.

P.S. cast psv1967, Evgueni

★★

Последнее исправление: nezamudich (всего исправлений: 1)

R это схема + синтаксический сахар (который местами даже закрывает некоторые вещи обычной схемы). В синтаксическом сахаре многое потянуто из APL(J), поэтому полезно прочитать немного введения в этот язык (лучше J поставить на телефон и повтыкать из позиции руководства «J для программистов на C» ).

Саму свободную реализацию S обозванную R Икхака и писал собственно под впечатлением от свеже пройденного SICP.

Несколько раз Икхака жаловался на застой в развитии компилятора (согласитесь объективно есть трудности получения денег на написание «ещё одной схемы»? :), и жалел что не взял один из оптимизирующих компиляторов лиспа промышленного качества (хотя тогда особо живого и не было).

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

Поэтому если есть желание именно научиться писать «идеоматический R код», то следует пройти курс SICP (ну или как его «перепевает Рабинович» в лице нашего «изобретателя списков»(под впечатлением от видео лекции) и ggplot), причем от SICP достаточного вменяемому человеку просто посмотреть оригинальные видеолекции с ютуба.

Просто с карандашиком повторить то, что Засман и Абельсон пишут на доске (можно их примеры кода немного в guile пописать, если воображалки не хватает «развернуть код в процесс»).

Ну и секретов никаких не останется. Навык в репле работы, в парадигме «реализация кода в процессе всё, сам код ничтожен», вполне органично «расширит сознание» от привычного «код всё, его реализация в процессе ничто». И далее можно органично переключаться между этими крайностями и решать задачи.

PS Сама статистика (если я вдруг чего не так понял в вопросе) требует классической связки комбинаторика — теория вероятности — статистика — линейная алгебра — машинное обучение — анализ данных и визуализация. Просто с упором в «я ничего не считаю аналитически, я сам себе вполне студент».

psv1967 ★★★★★
()
Последнее исправление: psv1967 (всего исправлений: 2)
Ответ на: комментарий от psv1967

Спасибо за развёрнутый ответ. Сразу скажу, что да, вопрос понят правильно, я не про статистику спрашиваю, а именно про R.

Следует отметить, что из лиспов имею знакомство с CL и со Scheme, поэтому REPL меня, разумеется, не пугает. И SICP я тоже осваивал в своё время (чуть более 10 лет назад, и забыть его трудно). А вот с APL и J не знаком, закорючки отпугивают.

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

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

Краеугольно (исходно) это результат написания «еще одного компилятора схемы» автором R после прохождения SICP. Компилятор естественно изображал из себя при помощи синтаксического сахара S.

А S традиционно в момент своего создания конкурируя с многопользовательскими APL системами потянул от них всё связанное с парадигмой «все есть вектор», «главное образ процесса, а не код» + «всё делаем постепенно в REPL».

Все приемы из схемы таким образом объяснять не надо, тогда остается прочитать что то вроде http://www.jsoftware.com/help/jforc/contents.htm и сразу преодолеваем описанный в оглавлении «культурный шок» (это полностью соответствует и проблеме «программиста на циклах и присваиваниях» для R)

Ну и без фанатизма (хотя как калькулятор + головоломка на телефон J получше R будет) просмотреть http://www.jsoftware.com/help/learning/contents.htm . Без фанатизма, поскольку авторы S далеко в APL не копали :) и для вот таких финтов http://www.cs.trinity.edu/~jhowland/math-talk/functional1/ понадобиться выучить стандартную библиотеку R.

О! совсем забыл — стандартную библиотеку R придется тупо просмотреть и прикинуть «для чего сотни чуваков с айкю выше моего сделали все эти кубики лего». Там в принципе есть некий вариант «всего что нужно в 99%», если конечно нет ситуации «я гордый и пойду своим путем"ТМ :). Ну и эти „кубики“ собственно то, что „синтаксическим сахаром“ не смогли перетянуть из APL, а оное оказалось критично для работы именно с векторами.

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

от матлаба

любая достаточно сложная программа на фортране по мере своего развития выводит в своих недрах интерпретатор схемы (С)

... думаю это следствие теоремы Рамсея :)

PS вариант с курсантом смотрящим на кирпич конечно тоже не исключен :)

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

парадигмой «все есть вектор», «главное образ процесса, а не код» + «всё делаем постепенно в REPL»

Вот-вот, вот это очень по-матлабовски. Видимо, это всё и в матлаб запилено тоже под влиянием APL.

nezamudich ★★
() автор топика
Последнее исправление: nezamudich (всего исправлений: 2)
Ответ на: комментарий от nezamudich

ошибки валятся жуткие

Так не держите в себе ошибок :)

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