Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RCoreTeam2014.docx
Скачиваний:
46
Добавлен:
08.10.2015
Размер:
539.13 Кб
Скачать
      1. Конкатенация списков

При конкатенации функцией c()с аргументами в виде списков получается результат в виде объекта с режимом списка, компоненты которого состоят из последовательно объединенного списка параметров.

> list.ABC <- c(list.A, list.B, list.C)

Вспомним, что с векторными объектами в качестве аргументов, функция конкатенации так же объединяла все параметры в отдельную векторную структуру. В этом случае все другие атрибуты, такие как атрибут dim, отбрасываются.

    1. Фреймы данных

Фрейм данных– это список с классом "data.frame".Есть ограничения на списки, которые могут быть превращены в фреймы данных, а именно,

  • Компоненты должны быть векторами (числовыми, символьными или логическими), факторами, числовыми матрицами, списками или другими фреймами данных.

  • Матрицы, списки, и фреймы данных предоставляют столько переменных для нового фрейма данных, сколько у них имеется столбцов, элементов или переменных, соответственно.

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

  • Векторные структуры, появляющиеся как переменные фрейма данных, должны иметь одинаковую длину, а матричные структуры должны иметь одинаковый размер строки.

Для многих целей фреймы данных можно расценить как матрицу со столбцами возможно отличающихся режимом и атрибутом. Он может быть выведен на экран в матричной форме, и его строки и столбцы извлекаются с использованием соглашения индексации матрицы.

      1. Создание фреймов данных

Объекты, удовлетворяющие ограничениям, установленным для столбцов

(компонентов) фрейма данных, могут использоваться для формирования с использованием функции data.frame:

> accountants <- data.frame(home=statef, loot=incomes, shot=incomef)

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

Самый простой способ создания фрейма данных с нуля состоит в использовании функции read.table()при считывании всего фрейма данных из внешнего файла. Это обсуждается далее в Главе 7 [Чтение данных из файла].

      1. Attach() и detach()

Нотация $, такая как accountants$home,для компонентов списка не всегда очень удобна. Полезное средство должно делать компоненты списка или фрейма данных временно видимыми в качестве переменных под их именем компонентов без потребности явно каждый раз заключать имя списка в кавычки.

Функция attach(() берет 'базу данных', такую как список или фрейм данных, как свой параметр. Таким образом, предположим, чтоlentils- фрейм данных с тремя переменнымиlentils$u, lentils$v, lentils$w.Присоединение:

> attach(lentils)

разместит фрейм данных в пути поиска на позиции 2 и обеспечит отсутствие переменных u, v илиwв позиции 1;u, v илиwдоступны как переменные из фрейма данных в их собственной позиции. В этом месте такое присвоение как:> u <- v+w

не заменяет компонент uфрейма данных, а скорее маскирует его с другой переменнойuв рабочем каталоге в позиции 1 на пути поиска. Чтобы произвести постоянное изменение непосредственно во фрейме данных, самый простой путь состоит в обращении еще раз к нотации$:

> lentils$u <- v+w

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

Чтобы отсоединить фрейм данных, используйте функцию: > detach()

Более точно этот оператор отсоединяет от пути поиска объект в настоящий момент в позиции 2. Таким образом, в существующем контексте переменные u, v иwбольше не были бы видимы, кроме, как в соответствии с нотацией списка какlentils$uи так далее. Объекты в позициях, больше чем 2 на пути поиска, могут быть отсоединены, давая их число для отсоединения, но намного более безопасно всегда использовать имя, напримерdetach(lentils) or detach("lentils").

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]