Если запустить RStudio, курсор по умолчанию будет в панели консоли. В консоли удобно проводить исследования, связанные как с языком, так и с вычислениями, графиками. В ней (в консоли) можно писать маленькие программы и давать команды.
Принцип работы в консоли такой:
- мы пишем код и отдаём его на выполнение R, путём нажатия Enter
- R обрабатывает код и выдаёт результат
и так происходит постоянно, т.е. циклически (или в цикле, англ. loop). Такой режим работы называется
интерактивным (от англ. interaction — «взаимодействие»). Поэтому иногда говорят, что работа в консоли ведётся в
интерактивном режиме. Бывает вместо интерактивного режима говорят, что работа ведётся в
REPL.
REPL это сокращение от
Read Eval Pring Loop - R читает команду (
Read), выполняет её (
Eval), выводит результат (
Print) и процесс повторяется (
Loop).
Дадим первую команду:
> 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 можно использовать вместо калькулятора.
В следующем посте
В этом посте мы познакомились с базовой конструкцией языка на котором будет строиться всё остальное - выражением. В следующем посте мы рассмотрим как вычисляются выражения и узнаем о простых и сложных выражениях.