Оценить:
 Рейтинг: 0

Определение языка R. Версия 3.5.2 (2018-12-20) DRAFT

<< 1 2 3 4 5 6
На страницу:
6 из 6
Настройки чтения
Размер шрифта
Высота строк
Поля

& And,

И бинарное, векторизовано

&&

И бинарное, не векторизовано

|

Или бинарное, векторизовано

||

Или бинарное, не векторизовано

<-

Левое присвоение, бинарное

– >

Правое присвоение, бинарное

$

Подмножество списка, бинарное

За исключением синтаксиса, нет никакой разницы между применением оператора и вызовом функции. Фактически, x + y может эквивалентно быть записано ‘+‘ (x, y). Заметим, что так как ‘+’ не является именем стандартной функции, то он должен быть заключен в кавычки.

R имеет дело со всем вектором данных за один раз, и большинство элементарных операторов и основных математических функций, например, log являются векторизованными (как обозначено в таблице выше). Например, добавление двух векторов одинаковой длины создаст вектор, содержащий поэлементные суммы, неявно индексируя циклическое выполнение по вектору. Также применяют как к другим операторам, таким ка – *, и / так и к структурам более высокой размерности. Заметим в особенности, что умножение двух матриц не производит обычное матричное произведение (оператор %*% существует с этой целью). Некоторые тонкости, касающиеся векторизованных операций, будут обсуждены в разделе 3.3 [Элементарные арифметические операции].

Для получения доступа к отдельным атомарным элементам вектора используется конструкция x [i]:

> x <– rnorm (5)
> x
[1]

– 0.12526937 -0.27961154 -1.03718717 -0.08156527 1.37167090

> x [2]
[1] -0.2796115

Для доступа к компоненте списка обычно используется x$a или x [[i]].

> x <– options ()
> x$prompt
[1] ">»

Также можно использовать индексацию конструкций на правой стороне присвоения.

Подобно другим операторам, индексация, в действительности, выполняется функциями, и можно использовать « [» (x, 2) вместо x [2].

Операции индексации R содержат много расширенных функций, которые описаны далее в разделе 3.4 (Индексирование).

3.2. Управляющие структуры

Вычисление в R состоит в последовательной оценке операторов. Операторы, такие как x <-1:10 или mean (y), могут быть разделены или точкой с запятой или новой строкой. Всякий раз, когда средству анализа предоставляют синтаксически полный оператор, этот оператор оценивается и возвращается значение. Результат оценки оператора может упоминаться как значение оператора. Значение всегда присваиваться символу.

Для разделения операторов могут использоваться и точки с запятой, и новые строки. Точка с запятой всегда указывает на конец оператора, в то время как новая строка может указывать на конец оператора. Если текущий оператор синтаксически не полный, то новые строки просто игнорируются средством анализа. Если сеанс является интерактивным, запрос изменяется с ‘> ’ на ‘+».

> x <– 0; x +5 [1] 5
> y <– 1:10
> 1; 2
[1] 1
[1] 2

Операторы могут группироваться использованием фигурных скобок ‘ {» и»}». Группу операторов иногда вызывают блоком. Отдельные операторы оцениваются при вводе новой строки в конце синтаксически полного оператора. Блоки не оцениваются, пока новая строка не вводится после закрывающей фигурной скобки. В оставшейся части этого раздела оператор ссылается на отдельный оператор или блок.

> {x <– 0
+ x +5
+}
[1] 5

3.2.1. Оператор if

Оператор if/else условно оценивает два оператора. Существует условие, которое подлежит оценке, и если значение равно TRUE, то первый оператор оценивается; иначе оценивается второй оператор. Оператор if/else возвращает в качестве своего значения значение выбранного оператора. Формальный синтаксис таков:

if (statement1)
statement2
else
statement3

Во-первых, оценивается statement1 для получения value1. Если value1 – логический вектор с первым элементом, равным TRUE, то оценивается statement2. Если первый элемент value1 равен FALSE, то оценивается statement3. Если value1 – числовой вектор, то оценивается statement3, когда первый элемент value1 равен нулю, а иначе оценивается statement2. Используется только первый элемент value1. Все другие элементы игнорируются. Если у value1 есть какой-либо тип кроме логического или числового вектора, то сигнализируется ошибка.

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


Вы ознакомились с фрагментом книги.
Приобретайте полный текст книги у нашего партнера:
<< 1 2 3 4 5 6
На страницу:
6 из 6