Czytaj książkę: «Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики», strona 3

Czcionka:

2.6. Векторы символов

Символьные количества и символьные векторы часто используются в R, например, как метки рисунка. Где необходимо они обозначены последовательностью символов, разграниченных символом двойной кавычки, например, «x-значением», «Новая итерация заканчивается».

Символьные строки вводятся, используя любые двойные (») или одинарные (») кавычки, но напечатаны, используя двойные кавычки (или иногда без кавычек). Они используют escape-последовательности C-стиля, используя \, поскольку символ ESC, таким образом, \\вводится и печатается как \\, и в двойных кавычках, «вводится как \». Другие полезные escape-последовательности: \n – новая строка, \t – табуляция и \b – клавиша Backspace – смотри? Quotes для полного списка.

Символьные векторы могут быть связаны в вектор функцией с (); примеры их использования будут часто появляться.

Функция paste () берет произвольное число параметров и связывает их один за другим в символьные строки. Любые числа, данные среди параметров, принуждены в символьные строки очевидным способом, то есть, таким же образом они были бы таковыми при печати. Параметры по умолчанию разделены в результате одиночным знаком пробела, но это может быть изменено именованным аргументом sep=string, который изменяет их на строку, возможно пустую.

Например:

 
> labs <– paste (c («X», «Y»), 1:10, sep=«»)
 

преобразует labs в символьный вектор

 
c («X1», «Y2», «X3», «Y4», «X5», «Y6», «X7», «Y8», «X9», «Y10»)
 

Заметим отдельно, что рецикличность коротких списков также имеет здесь место; таким образом, c («X», «Y») повторен 5 раз для соответствия последовательности 1:10.

paste (…, collapse=ss) помещает аргументы в единственную символьную строку, помещая ss между ними, т.е. ss <– "|». Существуют дополнительные инструменты для обработки символов, смотри справку по sub и substring.

2.7. Векторы индексов; выбор и изменение подмножеств наборов данных

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

Такой индексный вектор может быть любым из четырех различных типов.

– Логический вектор. В этом случае индексный вектор рециклично приводится к той же самой длине как вектор, из которого должны быть выбраны элементы. Значение, соответствующее TRUE в индексном векторе, выбрано, и те, которые соответствуют FALSE, опущены. Например:

 
> y <-x [! is.na (x)]
 

создает (или воссоздает) объект y, который будет содержать не несуществующие (только существующие) значения x в том же самом порядке. Заметим, что, если у x есть отсутствующие значения, то y будет короче, чем x. Также:

 
> (x+1) [(! is.na (x)) & x> 0] -> z
 

создает объект z и помещает в него значение вектора x+1, для которого соответствующее значение в x и не пропущено и положительное.

– Вектор положительных целых величин. В этом случае значение в индексном векторе должно лежать в наборе {1, 2…, length (x)}. Соответствующие элементы вектора выбраны и связаны в этом порядке в результате. Индексный вектор может иметь любую длину, и результат имеет одинаковую длину с индексным вектором. Например, x [6] является шестой компонентой x и

 
> x [1:10]
 

выбирает первые 10 элементов x (предполагается, что length (x) не меньше, чем 10). Также:

 
> c («x», «y») [rep (c (1,2,2,1), times=4)]
 

(по общему признанию вещь маловероятная), производит символьный вектор длины 16, состоящий из «x», «y», «y», «x» повторенных четыре раза.

– Вектор отрицательных целых величин. Такой индексный вектор указывает значение, которое будет исключаться, а не включаться. Таким образом:

 
> y <– x [– (1:5)]
 

даст все у, кроме первых пяти значений.

– Вектор символьных строк. Эта возможность применяется там, где у объекта есть атрибут имен для идентификации его компонентов. В этом случае подвектор вектора имен может использоваться таким же образом в качестве положительных целых меток в пункте 2 далее выше:

 
> fruit <– c (5, 10, 1, 20)
> names (fruit) <– c («orange», «banana», «apple», «peach»)
> lunch <– fruit [c («apple», «orange»)]
 

Преимущество состоит в том, что алфавитно-цифровые имена часто легче запомнить, чем числовые индексы. Эта опция особенно полезна в соединении с фреймами данных, как увидим позже.

Также индексное выражение может появиться на приемном конце присвоения, когда операция присвоения выполняется только на этих элементах вектора. Выражение должно иметь вектор вида [index_vector], поскольку наличие произвольного выражения вместо векторного имени не имеет здесь большого смысла.

Присвоенный вектор должен соответствовать длине индексного вектора, и в случае логического индексируют вектор, у него должна снова быть та же самая длина как вектор, который он индексирует.

Например:

 
> x[is.na (x)] <– 0
 

заменяет пропущенные значения в х на нули и

 
> y [y <0] <– -y [y <0]
 

имеет такой же результат как:

 
> y <– abs (y)
 

2.8 Другие типы объектов

Векторы – самый важный тип объекта в R, но есть несколько других, которые определим более формально в последующих разделах.

– matrices (матрицы) или более широко arrays (массивы) – многомерные обобщения векторов. Фактически, они – векторы, которые могут быть индексированы двумя или больше индексами и будут напечатаны специальными способами. См. Главу 5 [Массивы и матрицы].

– factors (факторы) реализуют компактные способы обработки категорических данных.

– lists (список) – общая форма вектора, в котором различные элементы могут не иметь одинаковый тип, и являются часто самостоятельно векторами или списками. Списки предоставляют удобный путь к возврату результатов статистического вычисления. См. Раздел 6.1 [Списки].

– data frames (фреймы данных) – подобные матрице структуры, в которых столбцы могут иметь различные типы. Думайте о фреймах данных как о «матрице данных» с одной строкой на отдельное наблюдение, но с (возможно) и числовыми и категориальными переменными. Много экспериментов лучше всего описываются фреймами данных: обработки категоричны, но отклик является числовым. См. Раздел 6.3 [Фреймы данных].

– functions (функции) – самостоятельные объекты в R, которые можно сохранить в рабочей области проекта. Этим реализован простой и удобный способ расширения R. См. Главу 10 [Написание собственных функций].

3. Объекты, их режимы и атрибуты

3.1. Внутренние атрибуты: режим и длина

Рабочие сущности R технически известны как объекты. Примерами могут быть векторы с численными (реальными) или комплексными величинами, векторы с логическими значениями и векторы строк символов. Они известны как «атомарные» структуры, так как их компоненты имеют одинаковый тип или режим (mode), а именно, numeric, complex, logical, character и raw.

numeric режим – на самом деле смесь двух разных режимов, а именно, integer и double precision, как объяснено в руководстве.

У векторов должен быть одинаковый режим для всех значений. Таким образом, любой данный вектор должен быть однозначно или логическим, числовым, комплексным, символьным или строковым (logical, numeric, complex, character или raw). Единственное очевидное исключение к этому правилу – специальное «значение», обозначаемое как NA для отсутствующих значений, хотя реально есть несколько типов NA. Заметим, что вектор может быть пустым и иметь режим. Например, пустой вектор символьной строки обозначается как character (0) и пустой числовой вектор как numeric (0).

R также работает с объектами, называемыми списками (list), которые имеют тип список (list). Существуют упорядоченные последовательности объектов, которые индивидуально могут иметь любой тип. Списки (list) известны как «рекурсивные», а не атомарные структуры, так как их компоненты могут самостоятельно быть списками.

Другие рекурсивные структуры из этого типа – это функции и выражения (function и expression). Функции – это объекты, которые являются частью системы R наряду с аналогичными написанными пользователем функциями, которые в деталях обсуждаются позже. Выражения, как объекты, составляют самую сложную часть R, которая не будет обсуждаться в этом руководстве, кроме как косвенно при обсуждении формул (formulae), используемых при моделировании R.

Типом (mode) объекта обозначили основной тип его фундаментальных свойств. Это – особый случай «свойств» объекта. Другое свойство каждого объекта – своя длина. Можно использовать функции mode (object) и length (object), чтобы узнать тип и длину любой определенной структуры.

Заметим, однако, что length (object) не всегда содержит явную полезную информацию, например, когда object – функция.

Другие свойства объекта обычно получают посредством attributes (object), смотри Раздел 3.3 [Получение и установка атрибутов]. Из-за этого тип и длину также называют «внутренними атрибутами» объекта.

Например, если z – комплексный вектор длины 100, то в выражении mode (z) является символьной строкой «complex», и length (z) равна 100.

R обслуживает изменения типа практически везде, где это имеет смысл сделать, и иногда там, где этого не так. Например, с:

 
> z <-0:9
 

можно ввести

 
> digits <– as.character (z)
 

после которого digits является символьным вектором c («0», «1», «2»…, «9»). Дальнейшее приведение, или изменение типа, восстанавливает числовой вектор снова:

 
> d <– as.integer (digits)
 

Теперь d и z одинаковы. Существует большое количество функций вида as.something () или для приведения от одного типа к другому, или для наделения объекта некоторым другим атрибутом, которым он, возможно, еще не обладает.

В целом приведение от числового к символьному типу и назад не будет точно обратимо из-за ошибок округления в символьном представлении.

Читатель должен консультироваться с различными справочными файлами для ознакомления.

3.2. Изменяющаяся длина объекта

«Пустой» объект может все еще иметь тип. Например:

 
> e <– numeric ()
 

делает e пустой векторной структурой типа числовой (numeriс). Так же character () является пустым символьным вектором, и так далее. Как только объект любого размера был создан, новые компоненты могут быть просто добавлены к нему, давая ему значение индексов вне его предыдущего диапазона. Таким образом:

 
> e [3] <– 17
 

теперь делает e вектором длины 3, (первые две компоненты, которого равны NA). Это применяется к любой структуре вообще, если тип дополнительного компонента (ов) согласован с типом первого объекта.

Эта автоматическая настройка длин объекта часто используется для ввода, например, в функции scan () (см. Раздел 7.2 [Функция scan ()]).

Наоборот требуется усечение размера объекта для выполнения присвоения. Следовательно, если alpha – объект длины 10, то

 
> alpha <– alpha [2 * 1:5]
 

делает его объектом длины 5, состоящим только из прежних компонентов с четным индексом. (Старые индексы не сохранены, конечно). Затем можно сохранить только первые три значения:

 
> length (alpha) <– 3
 

и вектор может быть расширен (путем пропущенных значений) аналогичным образом.

3.3. Получение и установка атрибутов

Функция attributes (object) возвращает список всех не внутренних атрибутов, в настоящий момент определенных для этого объекта. Можно использовать функцию attr (object, name) для выбора определенного атрибута. Эта функция редко используются, за исключением довольно особых обстоятельств, когда некоторый новый атрибут создается для некоторой конкретной цели, например, для присоединения даты создания или оператора с объектом R. Понять, однако, очень важно.

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

Когда такое используется на левой стороне присвоения, то оно может использоваться или для присоединения нового атрибута с object или изменения существующего. Например:

 
> attr (z, «dim») <– c (10,10)
 

позволяет R обрабатывать z как будто он является матрицей 10-на-10.

Ograniczenie wiekowe:
12+
Data wydania na Litres:
11 kwietnia 2019
Objętość:
150 str. 17 ilustracje
ISBN:
9785449661531
Format pobierania:
Tekst PDF
Średnia ocena 3,5 na podstawie 42 ocen
Tekst PDF
Średnia ocena 0 na podstawie 0 ocen
Tekst PDF
Średnia ocena 0 na podstawie 0 ocen
Tekst PDF
Średnia ocena 0 na podstawie 0 ocen