В этом фрагменте мы поговорим о том, как получить помощь в среде R. Во многих офисных программах, да и в статистических пакетах также, интерфейс оказывается очень дружелюбным и интуитивно понятным. Для пользователя это несомненно хорошо и приятно. Мало кто вызывает help работая, ну скажем, в exel-е или в word-е, например. Однако такой подход может сыграть со своим пользователем злую шутку. Интуитивность использования программы может создать у пользователя иллюзию, что он хорошо понимает суть того метода, который лежит в основе тех процедур, с которыми он работает кликая мышкой по соответствующим кнопочкам. В среде R все это не так. Здесь интуитивное знание не срабатывает. Предстоит внимательно разобраться с тем, как что устроено. Для этого в среде R существует великолепно организованная справочная система и к help-ам приходится обращаться постоянно, и ничего зазорного в этом нет. Существуют три основных способа получения справки. Во-первых, то, что всегда под боком, это локальная справка в среде R, значит она встроена в систему и ее можно получить не выходя из Rstudio. Во-вторых, можно погуглить информацию самостоятельно порывшись в сети. Соответственно это второй способ и в сети гигантское количество информации, посвященной тем или иным вопросам, которые возникают у людей при работе в R. И в-третьих, можно спросить знающих людей, которые входят в сообщество программистов Stack Owerflow, в котором присутствуют большое количество как именно программистов, так и математиков-статистиков, имеющую дело с R. И вот мы сейчас рассмотрим все три способа подробнее. Вот допустим вы решили взять логарифм от некоторого числа, понятно, что для этой математической операции в языке R должна быть какая-то функция, ну не трудно даже догадаться, что это будет функция log. Но логарифмы бывают разные. Надо как-то указать основание логарифма и тому подобные тонкости. Как это описать - мы не знаем, предположим, да. Конечно же, не задумываясь мы должны пойти в help. Как только вы чего-то не понимаете, сразу идете в help. И вот локальную справку можно вызвать несколькими способами: во-первых, можно в консоли или в окне скрипта написать знак вопроса, после чего вы пишете имя той функции, которая вам надо изучить. Соответственно, когда вы нажимаете Ctrl+Enter, то появляется справка по данной функции. Во-вторых, можно использовать функцию help. Это специализированная функция, который в качестве аргумента принимает имя той функции, которую вам необходимо изучить. В скобках мы пишем имя той команды, той функции, по которой надо получить справку. Опять же, не забываем активировать этот код, который написан, то есть здесь мы написали help от функции log. И соответственно, нажав Ctrl+Enter, мы получаем справку. Ну и наконец, еще один способ, это можно написать в окне скрипта или в консоли имя той функции, которая интересует, затем поставить текстовый курсор куда-нибудь в середину этого названия, например, написать log и поставить курсор сюда, и нажать F1. И после этого у вас появится справка по этой функции. Система сама распознает то, что вас интересует. И вот когда вы активировали обращение к окно-справке, она появилась у вас в специализированном окне, так вот ее текст имеет достаточно определенную структуру. Вы увидите длинный текст, он будет на английском языке, но этот текст будет разделен на разделы. У этих разделов много, и в некоторые функции набор разделов может несколько отличаться, но практически всегда вы найдете стандартный набор разделов. Содержания этих разделов, конечно, лучше бы прочитать, хотя бы по диагонали, понятно, что для этого придется немножко понатаскать себя в области английского языка, но мы вас предупреждали, что язык R он требует серьёзных и глубоких знаний предмета. Соответственно первый раздел называется Description, здесь будет дано общее описание функции. Что это за функция? Что она делает? Следующий раздел, он называется Usage. Вот здесь видите Usage для функции log, это шаблон использования функции, то есть как оформляется запись этой функции. Следующий раздел, это раздел Arguments, это параметры, аргументы функции, которые вам необходимо указать, чтобы эта функция сработала. Еще один раздел, значит, вот Arguments, и еще один раздел, называется Detalis, это дополнительные детали, которые необходимо учитывать при работе с той или иной функцией. Идем дальше, это не наконец еще всех возможных разделов. Еще один раздел Value, вот он здесь присутствует, это то, что будет выдаваться в качестве результатов работы той или иной функции. Очень важный раздел References. Это ссылки на первоисточники, соответственно, если вам нужны какие-то идеи, которые лежат в основе работы той или иной функции, то обращаетесь к тем статьям, к тем первоисточникам, которые указаны здесь в разделе References. Еще один, вот, соответственно References, и еще один раздел, называется See Also, здесь отсылает вас к тем функциям, которые по тем или иным параметрам похожи на ту функцию, которую вы изучаете. Ну и наконец, очень-очень полезный раздел, называется Examples, это пожалуй самый ценный элемент справочной системы R, здесь приведены примеры кода, то есть скриптов, с использованием функции, которая вас интересует. Этот код можно скопировать и вставить в окно скрипка в Rstudio, и далее можно этот код активировать и посмотреть как работает та или иная функция. Кстати, обратите внимание, что здесь, вот в этом примере, мы уже столкнулись с некоторой особенностями числовой системы R, когда запустили функцию Examples, скопировали Examples для логарифмов и запустили. Нам предлагают активировать вот такой код, это логарифм от e в степени 3, а вот здесь, смотрите, мы столкнулись с важной особенностью записи чисел в системе R. Дело в том, что некоторые числа компактнее записываются с использованием мантисса. В данном случае 1e7 означает 1 умножить на 10 в степени 7. Вот к этому надо привыкнуть и мы будем часто сталкиваться с подобными форматами записи чисел. В принципе можно настроить систему так, чтобы она выдавала все числа в виде обычных дробей, но обычно об этом забываешь и машина выдает тебе вариант вот такой, где мантисса записана таким образом. Еще один способ, который впрочем не исключает первый способ получить справку, это запросить справку через поисковую систему, например, через google. Для более целенаправленного поиска, любой запрос, касающийся среды R, начинайте с литеры R, например, ваш запрос про логарифмы может выглядеть так, вы можете написать r function log, и далее из просматриваемых предложенные варианты рассматривать и среди них несомненно найдете то, что ищете. Главное, как при любом сетевом поиске, надо твёрдо понимать что вы ищите, ведь можно найти всё, что угодно. Сеть это сети и есть. Так что критически относитесь к тому, что вы видите в результатах поисковиков. Ну и наконец третий способ получения справки, это обращение к участникам форума сообщества Stack Owerflow. Если вы наберете в поисковике фразу например r function log stackowerflow, то вас адресуют к соответствующей страничке форума, где присутствуют указанные ключевые слова. Вы можете перейти по этой ссылке и вы попадете на форум, где скорее всего обсуждается интересующая вас проблема. Тут важно понимать, что при огромном количестве пользователей, вероятность того, что никому не приходилось сталкиваться с той же проблемой, что возникла у вас, эта вероятность близка к нулю. Например, при постоянном обращении за помощью на этот форум лишь несколько раз удалось найти случаи, когда интересующие меня проблема практически не обсуждалась, хотя бывает и такое. Прочитав несколько постов, вы скорее всего решите проблему, вы поймете, собственно, что вас интересует. Если вдруг вы не нашли нужную информацию, то можете сами запостить вопрос, скорее всего активные участники форума на него ответят довольно оперативно или укажут где на форуме подобная проблема уже обсуждалась. В Rstudio справка может появляться и автоматически. Попробуйте начать писать имя той или иной функции и не заканчивая набор нажмите кнопку Tab или Ctrl и Enter. Вот смотрите, если вы начинаете писать getw, то вам тут же предлагает список тех функций, которые начинаются с этих букв и сразу же к этому списку будут прикладываться кратенькие характеристики, описывающие ту или иную функцию. Двигаясь по предложенным вариантам, можно посмотреть и выбрать то, что вам нужно. Для этого просто надо нажать Enter и соответствующая функция встанет в окно скрипта и дальше вы можете с ней работать. Кстати, таким же образом нажав tab можно вызвать список переменных, которые вы уже имеете в вашей среде, то есть которые появились в результате работы. В Rstudio будет и автоматически предлагать выбрать эти переменные, которые начинаются с того или иного сочетания букв. Важно только, чтобы вот эти строки кода, где встречается данная переменная, были уже запущены и ими переменной была бы представлена в среде текущей сессии. Это особенность Rstudio сильно ускоряет процесс написания кода, так что мы крайне рекомендуем вам этим пользоваться. И вот совершенно неизбежная ситуация, когда в консоли вы получите сообщение об ошибке или предупреждение. Не бойтесь этих красных записей. Это сплошь и рядом бывает. Значит системы не обвиняет вас в глупости, и вот разобраться в этих сообщениях совсем не сложно, даже при минимальном знании английского языка. Чаще всего ошибки возникают из-за неправильной записи имени функций или если вы вызвали функцию из пакета, который еще не был загружен. Поэтому совершенно не пугайтесь таких записей. Предупреждение, warnings, это сообщение, которое обычно возникают из-за некорректного использования той или иной функции, например, вы пытаетесь взять квадратный корень из минус единицы, вам пишут warning messege, что в функции, так сказать, sqrt -1 будут произведены в NaNs, то есть несуществующие значения. Соответственно, вот эти сообщения об ошибках и предупреждения вас не должны смущать, к ним надо относиться внимательно и с ними работать. Нередко возникают ситуации, когда вы активируете код, и нажав Ctrl+Enter, вместо результата получаете в консоли значок плюс, вот такая ситуация, да. Так вот, неистово плюсование в консоли свидетельствует о том, что вы просто забыли что-то в коде. Он не дописан, и это означает, что система ожидает от вас еще каких-то значков, которые вы не дописали. Чаще всего это скобки, и вот для этого надо просто внимательно просмотреть ваш код, например, вот здесь мы явно не написали еще одну скобку, и чтобы отменить это плюсование, надо просто нажать Esc, тогда у вас появится вот это галочка, с которой начинается консоль, и дальше можно написать правильный код со всеми необходимыми скобками, и он будет активирован как положено.