вторник, 18 августа 2015 г.
вторник, 11 августа 2015 г.
Получение информации о среде
Функция sessionInfo выдаёт версию, ОС, настройки локали (англ. locale, языковые настройки), список включённых пакетов:
Переменная R.version (тип list) содержит подробную информацию об ОС и версии:
Переменная R.version.string (тип character) хранит строку с версией:
Только номер версии можно получить с помощью функции getRversion:
> sessionInfo() R version 3.2.1 (2015-06-18) Platform: x86_64-unknown-linux-gnu (64-bit) Running under: Arch Linux locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 [6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] tools_3.2.1
Переменная R.version (тип list) содержит подробную информацию об ОС и версии:
> R.version _ platform x86_64-unknown-linux-gnu arch x86_64 os linux-gnu system x86_64, linux-gnu status major 3 minor 2.1 year 2015 month 06 day 18 svn rev 68531 language R version.string R version 3.2.1 (2015-06-18) nickname World-Famous AstronautВместо R.version, можно использовать переменную version, разницы нет.
Переменная R.version.string (тип character) хранит строку с версией:
> R.version.string [1] "R version 3.2.1 (2015-06-18)"
Только номер версии можно получить с помощью функции getRversion:
> getRversion() [1] ‘3.2.1’
Работа с репозиториями пакетов
Получение списка репозиториев
Пакеты устанавливаются из репозиториев. Список репозиториев, используемых для скачки/установки пакетов, можно получить с помощью функции getOption:getOption("repos")Пример выполнения этой команды:
> getOption("repos") CRAN "http://cran.rstudio.com" attr(,"RStudio") [1] TRUEЗдесь, в результате выполнения, можно увидить название репозитория - CRAN и его адрес http://cran.rstudio.com.
вторник, 28 июля 2015 г.
Что нужно, чтобы начать применять R?
Вначале уточним цель
Вначале уточним, что весь следующий материал будет рассчитан на достижение цели: научиться применять R для решения своих задач. Чтобы добиться этой цели нужно:- Узнать необходимый теоретический минимум
- Получить необходимый практический опыт, реализов теорию в практике
Что же нужно, чтобы начать применять R?
Чтобы начать применять R достаточно скачать и установить необходимые инструменты и начать пробовать ими пользоваться. Но что конкретно нужно делать? Как пользоваться? Этот и следующий посты объясняют это.Пару соглашений о постах
Условимся, что для этого и следующих постов, в конце каждого, под заголовком "Смысл поста" будут выписаны самые важные идеи. Не для всех постов он будет, т.к. иногда не будет возможным вычленить эти идеи. Это нужно для удобства.Текст под заголовком "В следующем посте" будет связывать по смыслу текущий пост со следующим и будет коротко описывать его суть.
Необходимая теория, начало: что такое программа?
Определимся, что значит программа. Программа это указание компьютеру, что нужно сделать, состоящее из последовательности шагов и которое записывается на языке программирования, в данном случае на R.Главная цель программы - решить поставленную задачу. Какую конкретно задачу? Это выбирает сам программист: он решает что делать и в какой последовательности делать компьютеру и задаёт её в виде программы, на языке программирования. Компьютер просто покорно выполняет программу в точности как задал программист.
Язык программирования, в нашем случае R, это язык на котором общается программист (человек) с компьютером (машиной). На языке программирования описывается алгоритм, который компьютер должен будет выполнить.
Любая программа реализует какой-либо алгоритм. Алгоритм это план решения задачи. Т.е. получается, что программа это реализация плана решения задачи - алгоритма.
Смысл поста
Программа реализует алгоритм и решает поставленную задачу. Задачу определяет программист и пишет, что должен сделать компьютер на языке программирования.В следующем посте
Итак, мы знаем, что такое программа, попробуем написать первую программу. Но для этого нам нужны инструменты, чтобы мы могли это сделать. Займёмся установкой инструментов в следующем посте.четверг, 26 марта 2015 г.
Основы работы в консоли. Понятие выражения
Если запустить RStudio, курсор по умолчанию будет в панели консоли. В консоли удобно проводить исследования, связанные как с языком, так и с вычислениями, графиками. В ней (в консоли) можно писать маленькие программы и давать команды.
Принцип работы в консоли такой:
Дадим первую команду:
В R базовая конструкция это выражение (expression). Пример языков, где базовая конструкция это команда: C++, Java, Python, PHP. Разберёмся, что это значит. Но вначале уточним, один момент о командах.
То, что мы ввели в консоли это команда консоли, однако есть ещё и понятие команды как конструкции языка, которое по англ. называется statement. Нужно отличать эти два понятия, поэтому для команд как конструкций языка будем использовать слово-синоним - оператор (ещё один синоним это инструкция). Итак: команда языка это оператор (statement), команда консоли это просто команда консоли, другое понятие.
Самый главный принцип, который нужно понять и на котором всё строится: в R операторы (statements) и выражения (expressions) это одно и тоже: любой оператор это выражение. По-сути в R нет понятия команды как конструкции языка. Поэтому, то, что мы ввели - число 3.14, является выражением, которое состоит из одного числа, R вычислил его значение и выдал результат.
В чём отличие между операторами и выражениями? Отличие в том, что любое выражение всегда преоразуется в значение - результат, оператор - не преобразуется в результат.
На карте ядра были показаны операторы (синоним команд) как отдельный элемент: Так как в R базовая конструкция это выражение, то картина будет другой: Вообще все команды консоли это по-сути выражения, просто они называются командами консоли (и как было сказано выше это другое понятие, отличное от понятия оператора). Любая команда консоли имеет такой вид:
Вот ещё несколько примеров выражений:
В консоли можно давать и несколько команд подряд, в одну строку, разделяя их символом-разделителем - точкой с запятой
Принцип работы в консоли такой:
- мы пишем код и отдаём его на выполнение R, путём нажатия Enter
- R обрабатывает код и выдаёт результат
Дадим первую команду:
> 3.14 [1] 3.14Это программа, состоящая из одного числа - числа pi с двумя цифрами после запятой. Мы просто ввели число, R выдал результат. Теперь на примере этой маленькой программы познакомимся c одним из главных принципов языка R.
Главный принцип: базовая (основная) конструкция R - выражение
В любом языке программирования есть базовая конструкция, с помощью которых реализуется алгоритм (как мы уже узнали алгоритм придумывает сам программист). Это может быть либо команда (statement), либо выражение (expression).В R базовая конструкция это выражение (expression). Пример языков, где базовая конструкция это команда: C++, Java, Python, PHP. Разберёмся, что это значит. Но вначале уточним, один момент о командах.
То, что мы ввели в консоли это команда консоли, однако есть ещё и понятие команды как конструкции языка, которое по англ. называется statement. Нужно отличать эти два понятия, поэтому для команд как конструкций языка будем использовать слово-синоним - оператор (ещё один синоним это инструкция). Итак: команда языка это оператор (statement), команда консоли это просто команда консоли, другое понятие.
Самый главный принцип, который нужно понять и на котором всё строится: в R операторы (statements) и выражения (expressions) это одно и тоже: любой оператор это выражение. По-сути в R нет понятия команды как конструкции языка. Поэтому, то, что мы ввели - число 3.14, является выражением, которое состоит из одного числа, R вычислил его значение и выдал результат.
В чём отличие между операторами и выражениями? Отличие в том, что любое выражение всегда преоразуется в значение - результат, оператор - не преобразуется в результат.
На карте ядра были показаны операторы (синоним команд) как отдельный элемент: Так как в R базовая конструкция это выражение, то картина будет другой: Вообще все команды консоли это по-сути выражения, просто они называются командами консоли (и как было сказано выше это другое понятие, отличное от понятия оператора). Любая команда консоли имеет такой вид:
> выражение [1] результатПока не будем рассматривать, что значит
[1], сделаем это позже, когда мы будем готовы к этому. Главное здесь понять, что все команды консоли имеют одинаковый вид.
Вот ещё несколько примеров выражений:
> 23 [1] 23 > 42 - 7 [1] 35 > 42 - 8 [1] 34 > 8 / 4 [1] 2 > sin(pi / 2) [1] 1Видно, что R может вычислять знакомые математические выражения. Вообще же консоль R можно использовать вместо калькулятора - консоль поддерживает всё то, что свойственно обычному калькулятору плюс умеет делать гораздо больше.
В консоли можно давать и несколько команд подряд, в одну строку, разделяя их символом-разделителем - точкой с запятой
;:
> 23; 42 - 7; 8 / 4; sin(pi / 2) [1] 23 [1] 35 [1] 2 [1] 1
Смысл поста
Работа в консоли ведётся в интерактивном режиме (aka REPL). В консоли даются команды, являющиеся по-сути выражениями (expressions). В R оператор (statement) и выражение (expression) это одно и тоже, понятие оператора не используется. Отличие выражения от оператора в том, что выражение всегда преобразуется в значение, а оператор - нет. Выражение это базовая конструкция языка R для выполнения действий алгоритма программы. Консоль R можно использовать вместо калькулятора.В следующем посте
В этом посте мы познакомились с базовой конструкцией языка на котором будет строиться всё остальное - выражением. В следующем посте мы рассмотрим как вычисляются выражения и узнаем о простых и сложных выражениях.суббота, 24 января 2015 г.
Решение типичных проблем и исправление ошибок
Ошибка: "package 'имя-пакета' is not available (for R version x.y.z)"
Ошибка может возникать при попытке установки пакета.Может быть несколько причин и соответственно путей исправления этой ошибки:
- Может исчерпаться свободное место, выделенное для файловой системы временной директории. В Линукс это /tmp, в Windows это обычно C:\Users\Имя\AppData\Local\Temp или путь, хранящийся в переменной среды %Temp%. Нужно убедиться что есть место для раздела. В Linux это можно сделать, например, так:
df -h
- Другая причина связана с настройкой репозитория:
- может быть выставлен либо некорректный URI репозитория;
- пакет может отстутствовать в репозитории;
- репозиторий может хранить устаревшую версию пакета.
options(repos = c(CRAN = "http://cran.rstudio.com")) install.packages('имя-пакета') # более короткая версия, не меняющая опций: install.packages("имя-пакета", repos=c(CRAN="http://cran.rstudio.com"))
Здесь мы использовали новый URI для репозитория - http://cran.rstudio.com, список других адресов можно на странице CRAN Mirrors.
Насколько актуальны зеркала можно узнать на странице the status of CRAN mirrors.
Подписаться на:
Сообщения (Atom)